2013-10-08 24 views
4

我通過引用他們的站點的文檔來整合CKEditor和CKFinder。顯示在ckeditor中的鏈接

因此,我成功上傳了不同類型的文檔,pdf和圖像。但每次當我上傳的鏈接生成的文件時間就像

/Project_folder/files/0321832051(3).pdf 

,但我必須只顯示文件名和在該文件上應該有一個鏈接。 例如0321832051(3).pdf 當我點擊該鏈接時應該打開。 我在谷歌搜索,但我沒有得到它的解決方案。有沒有人試過。如果有人知道,請告訴我。

爲此,我現在用的CKEditor和ckfinder爲asp.net

沒有任何人知道嗎?

+0

「我必須顯示文件名,並在該文件上應該有一個鏈接。」 - 你的意思是你想插入到CKEditor並顯示鏈接?通過圖像對話框? – Nenotlep

+1

是的,我想只顯示上傳的文件名(如(abc.pdf),並且在那個顯示文件名中應該有一個像(/folder/uploaded_files/abc.pdf)這樣的鏈接。 – Shrikant1712

+0

你可以使用/Project_folder/files/0321832051(3).pdf替換方法,而不是你正在使用的元素? –

回答

3

用下面的破解代碼中的編輯器名稱替換「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的值,然後才進行替換。

+0

現在重新讀你的問題我真的希望你確實在談論鉤入LINK插入,而沒有別的,但我不明白這可能是其他任何東西。如果不是鏈接插入,請重新閱讀,修改並澄清您的問題。 – Nenotlep

+1

它有一些變化。感謝您的指導。也因爲我不在城裏而遲到回覆。 – Shrikant1712

0

我想你應該手工包裝那些在HTML預覽作爲

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

這應該做的伎倆

+0

我試過了,但沒有運氣。 – Shrikant1712

0

隨着CKEDITOR,你可以做這樣的:

string mytext = "hello world :)"; 
CKEDITOR.instances.editor1.insertHtml('<a href="mylink">' + mytext + '</a>'); 
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);