4

我通过参考他们网站上的文档来集成 CKEditor 和 CKFinder。

在那里,我成功上传了不同类型的文档、pdf 和图像。但是每次我上传文档时,生成的链接就像

/Project_folder/files/0321832051(3).pdf

但我必须只显示文件名,并且在该文件上应该有一个链接。例如 0321832051(3).pdf 当我点击那个链接时它应该是打开的。我在谷歌上搜索,但我没有得到解决方案。有没有人试过。如果有人知道,请告诉我。

为此,我将 ckeditor 和 ckfinder 用于asp.net

有人知道吗?

4

4 回答 4

3

在下面的 hack 中将“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 的值,然后才替换。

于 2013-10-21T12:37:34.100 回答
0

我认为你应该手动将它们包装在 html PREVIEW 中

`<a href='/folder/uploaded_files/abc.pdf'>SomeText</a>.`

这应该够了吧

于 2013-10-10T18:05:14.390 回答
0

CKEDITOR可以这样做:

string mytext = "hello world :)";
CKEDITOR.instances.editor1.insertHtml( '<a href="mylink">' + mytext + '</a>' );
于 2013-10-21T09:52:04.943 回答
0

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);
于 2013-10-21T10:00:58.647 回答