Javascript 向TinyMCE添加自定义元素的首选方法
我是tinyMCE的新手,目前正在研究向tinyMCE添加自定义元素的首选方法 我在工具栏上添加了许多按钮,这些按钮依次触发(a)为文本的选定部分插入元素,以及(b)再次单击时从选定文本中删除这些元素 我不想让这些元素嵌套,所以基本上我只想用给定的、不重叠的标记标记句子或单词的部分,例如:Javascript 向TinyMCE添加自定义元素的首选方法,javascript,tinymce,rich-text-editor,Javascript,Tinymce,Rich Text Editor,我是tinyMCE的新手,目前正在研究向tinyMCE添加自定义元素的首选方法 我在工具栏上添加了许多按钮,这些按钮依次触发(a)为文本的选定部分插入元素,以及(b)再次单击时从选定文本中删除这些元素 我不想让这些元素嵌套,所以基本上我只想用给定的、不重叠的标记标记句子或单词的部分,例如:Hello world 目前,我在tinyMCE文档中发现了以下两种可能性: #1 tinyMCE.execInstanceCommand(editor_id, command, user_interface,
Hello world
目前,我在tinyMCE文档中发现了以下两种可能性:
#1 tinyMCE.execInstanceCommand(editor_id, command, user_interface, value, focus)
及
其中#2看起来更灵活,因此值得我追求
我已经开始使用第2种方法实现插件,但我不确定如何处理以下内容:
- 选择重叠的元素边界和文本节点(如
hello world!
- 合并相邻元素(
)或barbar
- 如何处理空元素等等
strong、em、h1、…、h6
等等
如果您需要更多信息,请告诉我,任何提示或指针都将不胜感激。出于格式化目的,tinymce核心文件中有
Formatter.js
类。
但是您想要的是相当复杂的。我们试图阻止tinymce嵌套跨距,并根据需要调整了
Formatter.js
。为了进行格式化,tinymce核心文件中有Formatter.js
类。
但是你想要的是相当复杂的。我们试图阻止tinymce嵌套跨距,并根据我们的需要调整了
Formatter.js
。感谢Thariama的回答,我的意图是尽可能简单:-)你介意给我发送相应的代码片段吗(只有在不会造成任何麻烦/不便的情况下)?我也在努力避免筑巢。我想我的主要问题是,我仍然在寻找“正确”的方法和地点来做这件事,但我会尝试学习Formatter.js,不幸的是,这样只提供了有限的空间来发布,所以我把类代码粘贴在这里:。我希望这会对你有所帮助。谢谢你,如果我还没有把这个标记为已解决,你介意吗?你的回答很有帮助,但如果还有其他意见,我也很高兴听到:-)谢谢你的回答Thariama,我的意图是尽可能简单:-)你介意给我发送相应的代码片段吗(只有在不会造成任何麻烦/不便的情况下)?我也在努力避免筑巢。我想我的主要问题是,我仍然在寻找“正确”的方法和地点来做这件事,但我会尝试学习Formatter.js,不幸的是,这样只提供了有限的空间来发布,所以我把类代码粘贴在这里:。我希望这会对你有所帮助。谢谢你,如果我还没有把这个标记为已解决,你介意吗?你的回答很有帮助,但如果还有其他意见,我也很乐意听到:-)
#2 var n = dom.create(element);
n.innerText = sel.getContent({format : 'text'});
tinyMCE.activeEditor.selection.setNode(n);