Отобразить ссылку в 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>' );
Другие вопросы по тегам