2016-01-29 14 views
2

我正在嘗試爲CKEditor創建一個簡單的插件,它將一段代碼粘貼到編輯器中。我曾嘗試向內容過濾器添加例外,甚至完全禁用內容過濾器config.allowedContent = true; 在我的config.js文件中。如何禁用CKEditor將「cke:」添加到對象標籤的開頭?

<object></object>標籤首先粘貼到它正常工作的編輯,但是當用戶或者切換到「源」模式,並返回到所見即所得的模式,我發現<object>標籤現在變成了<cke:object></cke:object>標籤,導致其從所見即所得模式中消失。

如何禁用此功能?

我承認我不完全理解的源代碼,但我周圍挖和匪徒似乎是文件:

/ckeditor/core/filter.js 

線1463和1533之間

,並還表現在:

/ckeditor/core/htmldataprocessor.js 

上線開始,788

注:我使用的CKEditor 4.5.6

它們都包含對cke:和正則表達式的引用以附加/刪除前綴cke:

我試着在這裏尋找堆棧溢出,文檔,甚至submitted a ticket月前,但我一直沒能找到答案。

回答

2

這是因爲您沒有處理此<object>標記的功能。例如,如果您啓用Flash插件並插入Flash對象,它將轉換爲佔位符(請檢查this code)。由於安全性,在可編輯區域內不能有<object>標籤,它需要由插件處理並轉換爲佔位符或小部件。

+0

謝謝Piotr!不幸的是,我現在有更多的問題。 您能否詳細說明您的安全意味着什麼?瀏覽器安全性還是編輯安全性?似乎對象標籤在編輯器轉換爲「cke:object」標籤之前能夠在編輯器中完美地工作。 [這裏是截圖](http://i.imgur.com/bIb4tel.png)。 此外,爲什麼編輯器首次插入時使用'editor.insertElement(embedTag);' 顯示對象標籤您可以推薦關於與flash插件集成的fakeObjects插件的說明/文檔嗎? –

+1

點''不應該是可編輯區域的一部分。它不可能像文本或段落那樣編輯。但是,它可以是編輯器中的一個不可編輯的元素,它具有一些可編輯的部分。這是CKEditor調用小部件的內容,這裏是一個教程如何創建它:http://docs.ckeditor.com/#!/guide/widget_sdk_intro –

+0

謝謝Piotr!在閱讀完Widget文檔後,我可以使用Widget框架實現我的插件。謝謝! –