向TinyMCE添加自定义元素的首选方法

时间:2012-12-03 16:04:51

标签: javascript tinymce rich-text-editor

我是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看起来更灵活,因此值得追求。

我已经开始使用方法#2实现插件,但我不确定如何处理这样的内容:

  • 选择重叠元素边界文本节点(例如<foo>hello</foo> world <bar>!</bar>
  • 合并相邻元素(<foo>bar</foo><foo>bar</foo>)或
  • 如何应对元素等。

这就是为什么我想知道我是否缺少某种预定义的接口,因为“常规”元素(例如strong, em, h1,…,h6等)也需要许多这些功能。

如果您需要更多信息,请通知我,任何提示或指示都将不胜感激。

1 个答案:

答案 0 :(得分:1)

出于格式化目的,tinymce核心文件中有Formatter.js类。 但你想要的是非常复杂的。我们试图阻止tinymce嵌套跨度,并根据我们的需要调整Formatter.js