2013-04-03 169 views
3

CKEditor 4屬性過濾剝離了放入編輯器的錨標籤中的任何「href」事件。我有一個插件可以創建包含一些「自定義」屬性的鏈接。鏈接看起來是這樣的:有沒有辦法阻止CKEditor 4過濾我的錨標籤屬性?

<a href="#" document-href="abc123">Some Link</a> 

的CKEditor的時候我打電話的getData(返回這種形式的鏈接):

<a href="#" document->Some Link</a> 

有沒有辦法來指示的CKEditor停止過濾鏈接屬性?有人碰巧知道這個正則表達式的來源在哪裏,所以我可以修復它?

謝謝!

回答

4

我剛剛檢查該鏈接的CKEditor 4.1 - 輸出:

<p><a href="#">Some Link</a></p> 

由於4.1 document-href被剝離,因爲它現在允許在編輯器中。您必須添加一個Advanced Content Filter規則 - 例如:

config.extraAllowedContent = 'a[!href,document-href]'; 

然後它將在4.1中工作。在4.1之前,它應該默認工作,不需要設置任何東西。

但是在CKEditor的HTML解析器中存在一個錯誤。它不會正確解析鏈接上的sth-href屬性,因此結果爲sth-屬性。

現在我建議您將此屬性的名稱更改爲data-url或其他任何不帶href的結尾。

我創建了一張票:https://dev.ckeditor.com/ticket/10298

+0

感謝您創建票證。在我找到負責任的代碼之後,我打算這麼做。解決方法現在可以完成。我正在重寫編輯器中的鏈接,並在編輯器中將其重新編輯時重寫它們。 – Nick 2013-04-05 14:45:20

2

嘗試在配置文件中設置此項。

config.allowedContent = true; 

也如果混得插入過濾,然後你可以試試這個:

//var yourAnchor = '<a href="#" document-href="abc123">Some Link</a>'; 

editor.insertHtml(yourAnchor, 'unfiltered_html'); 
+1

謝謝。這沒有什麼區別。 – Nick 2013-04-03 19:35:01

+0

嘗試在插入模式下傳遞'unfiltered_html'。 editor.insertHtml(yourAnchor,'unfiltered_html'); – 2013-04-03 20:00:15

+0

設置'allowedContent = true;'刪除所有過濾,這是使用CKEditor的主要原因之一。你會創建更多的問題,而不是通過這樣做來解決問題,而不是正確配置它。所以,雖然它可能解決OP的問題,但不推薦。 – dKen 2015-01-16 15:08:07

相關問題