Отобразить ссылку в ckeditor
Я интегрировал CKEditor и CKFinder, ссылаясь на документацию с их сайта.
В этом я успешно загрузил различные типы документов, PDF и изображений. Но каждый раз, когда я загружаю документ, сгенерированная ссылка
/Project_folder/files/0321832051(3).pdf
но я должен просто отобразить имя файла, и на этот файл должна быть ссылка. например, 0321832051(3).pdf, когда я нажимаю на эту ссылку, она должна быть открыта. Я искал в Google, но я не получил решение для этого. Кто-нибудь пробовал это. Пожалуйста, дайте мне знать, если кто-нибудь знает.
Для этого я использую ckeditor и ckfinder для asp.net
Кто-нибудь знал это?
4 ответа
Замените "editor1" на имя вашего редактора в разделе "Взлом" ниже или взломайте систему, которую вы используете после загрузки CKE js. Он слушает закрытие диалогов, когда видит, что диалоговое окно ссылки скрыто и текущий выбор начинается с <a...>
ссылка, она берет содержимое указанной ссылки и вырезает его из последней косой черты.
var editor = CKEDITOR.instances.editor1;
editor.on('dialogHide', function(e) {
if(e.data.getName() === "link") {
var sel = editor.getSelection();
var se = sel.getStartElement();
var text = se.getText();
if(se.getName() === "a") {
var newtext = text.slice(text.lastIndexOf('/')+1);
se.setText(newtext);
}
}
});
Это сложно и отвратительно, но, кажется, работает. Будьте предупреждены, я не проверял это, если это ломает что-либо еще как закрепление. Лучше было бы проводить больше проверок, например, проверять, получает ли newtext значение> 1 и только затем заменять.
Я думаю, что вы должны вручную обернуть их в HTML PREVIEW как
`<a href='/folder/uploaded_files/abc.pdf'>SomeText</a>.`
Это должно делать свое дело
С CKEDITOR
Вы также можете сделать это, используя это style
:
var attributes = Array();
attributes["href"] = link; //your link
var style = new CKEDITOR.style( { element : 'a', attributes : attributes } );
style.type = CKEDITOR.STYLE_INLINE;
style.apply(editor.document);
С CKEDITOR
Вы можете сделать это так:
string mytext = "hello world :)";
CKEDITOR.instances.editor1.insertHtml( '<a href="mylink">' + mytext + '</a>' );