配置/清理问题

时间:2010-07-05 07:25:15

标签: tinymce

使用复制粘贴(或代码插件),即使我认为我的设置禁止嵌套跨度,用户也可以插入包括跨度产生嵌套跨度的内容。 我确实想要在执行“清理”操作时过滤掉嵌套的跨度。

进行手动清理(粘贴文本后触发的命令“mceCleanup”)也无济于事。

TinyMCE documentation用户的响应可以选择在为已定义的父节点执行“清理”时丢弃哪些子元素。

我的配置有问题吗?如果是,那有什么不对? 有什么建议吗?

这是我的配置(相关部分,我使用的是最新的tinymce版本(3.3.8),发生在所有主流浏览器中):

    cleanup : true,

    encoding: "xml",

    dialog_type : "modal",

    object_resizing: false,
    paste_strip_class_attributes: "all",

    entity_encoding: "raw",

    fix_nesting: true,

    invalid_elements: "strong,ul,ol,li",


    // The valid_elements option defines which elements will remain in the edited text when the editor saves.
    valid_elements: "@[id|class|title|style],"
    + "a[name|href|target|title],"
    + "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i,"
    + "-span,hr",

    valid_child_elements : "body[p|ol|ul]"  //EDIT: had some ","s instead of "|"s
    + ",p[a|span|b|i|sup|sub|img|hr|#text]"
    + ",span[a|b|i|sup|sub|img|#text]"
    + ",a[span|b|i|sup|sub|img|#text]"
    + ",b[span|a|i|sup|sub|img|#text]"
    + ",i[span|a|b|sup|sub|img|#text]"
    + ",sup[span|a|i|b|sub|img|#text]"
    + ",sub[span|a|i|b|sup|img|#text]"
    + ",li[span|a|b|i|sup|sub|img|ol|ul|#text]"
    + ",ol[li]"
    + ",ul[li]"

1 个答案:

答案 0 :(得分:2)

我认为您的配置没有任何问题。

问题是TinyMCE代码完全忽略了自版本3.3b1(2010年1月25日)以来的valid_child_elements属性。我使用Window Grep检查3.3.8下载中的所有文件,valid_child_elements字符串仅在/jscripts/tiny_mce/Classes/Editor.js中找到两次(并在同一行) - 这简单来说就是一个简单的在其他地方没有使用的赋值语句。

事实证明,在版本3。2。7(2009年9月22日)或更低版本(请参阅http://sourceforge.net/projects/tinymce/files)中,valid_child_elements属性在addValidChildRules中调用了一个名为/jscripts/tiny_mce/Classes/dom/Serializer.js的函数我相信你做的基本上是你想要的。这个版本中有错误让你高兴。在将简化的valid_child_elements配置参数添加到下载中的一个示例文件后,我最终获得了要删除的嵌套标记:

valid_child_elements : "span[a|b|i|sup|sub|img|#text]"

希望这有帮助。