2012-12-03 39 views
1

我是tinyMCE的新手,目前正在研究將自定義元素添加到tinyMCE的首選方式?向TinyMCE添加自定義元素的首選方式

我在工具欄中添加了一些按鈕,這反過來又觸發(a)插入文本的選定部分的元素,(b)再次單擊時從選定文本中刪除這些元素。

我不想讓嵌套這些元素,所以基本上我只是想標記一個句子或單詞與給定的,不重疊,標籤,例如部分:<foo>Hello</foo> world

因爲我找到的那一刻這兩種可能性在tinyMCE的文檔:

#1 tinyMCE.execInstanceCommand(editor_id, command, user_interface, value, focus)  

#2 var n = dom.create(element); 
    n.innerText = sel.getContent({format : 'text'}); 
    tinyMCE.activeEditor.selection.setNode(n); 

其中,#2貌似更靈活的方式,因此值得PU發給我。

我已經開始使用方法#2實現插件,但我不確定我會如何處理這樣的東西:

  • 選擇重疊元素邊界文本節點(如<foo>hello</foo> world <bar>!</bar>
  • 合併相鄰元素(<foo>bar</foo><foo>bar</foo>)或
  • 如何應對元素等等

這就是爲什麼我想知道我是否缺少某種預定義的接口,因爲很多這些功能也應該是「常規」元素所需要的,如strong, em, h1,…,h6之類的。

如果您需要更多信息,請讓我知道,任何提示或指針將不勝感激。

回答

1

爲了格式化目的,tinymce核心文件中有Formatter.js類。 但是你想要的是非常複雜的。我們試圖阻礙tinymce嵌套跨度,並根據我們的需要調整Formatter.js

+0

感謝您的回答Thariama,我的意圖是儘可能簡單:-)您是否介意給我發送相應的代碼片段(僅當它不會造成任何麻煩/不便時)?我正試圖避免嵌套。我想我的主要問題是,我仍然在尋找「正確」的方式和地點來做到這一點,但我會努力學習Formatter.js – michael

+1

不幸的是,SO只提供有限的發佈空間,所以我把類代碼並粘貼在這裏:http://fiddle.tinymce.com/2tcaab。我希望這會對你有所幫助。 – Thariama

+0

謝謝,如果我還沒有把這個標記爲已解決,你會介意嗎?你的回答有很大的幫助,如果還有其他意見,我會很高興聽到他們:-) – michael

相關問題