TinyMCE清理某些div

时间:2012-01-31 08:56:49

标签: javascript tinymce wysiwyg rte

我有一个页面,想要使用TinyMCE编辑页面上的某些元素。当我尝试编辑以下元素时,tinyMCE中加载的实际内容与第2列中一样

Original : As loaded in MCE
<dd>1234<span></span></dd> : 1234<span></span>
<tr><td><label>A</label></td><td>B</td></tr> : <label>A</label>B

我知道有一些html验证会检查父子元素的关系(例如,只有当表有父表时才会出现tr)。有没有办法我可以告诉tinyMCE停止这样做,并允许我直接编辑tr元素而无需编辑完整的表格元素。即我想阻止tinyMCE对加载的HTML进行任何更改,无论其是否有效。

另外,我尝试了verify_html和valid_elements设置,但似乎没有帮助

由于

2 个答案:

答案 0 :(得分:2)

你有两个选择

  1. 您将使用cleanup: false, tinymce init设置 禁用html检查
  2. 或者您可以使用更好的选项

    2 ..并定义编辑器应接受哪些元素和childelements为有效

    在您的情况下,您的valid_elements不需要更新,因为trtdlabel默认情况下已经是有效元素(但如果您愿意,可以将它们定义为无效) 。 您需要做的是将它们作为有效子项添加到valid_children设置。 如果你想将tr标签定义为p标签和其他元素的有效子元素,你需要设置这样的东西

        valid_children: "body[p|ol|ul]" +
        ",p[a|span|b|i|u|sup|sub|img|hr|#text|tr|td|label]" +
        ",span[a|b|i|u|sup|sub|img|#text|tr|td|label]" +
        ",a[span|b|i|u|sup|sub|img|#text|tr|td|label]" +
        ",b[span|a|i|u|sup|sub|img|#text|tr|td|label]" +
        ",i[span|a|b|u|sup|sub|img|#text|tr|td|label]" +
        ",sup[span|a|i|b|u|sub|img|#text|tr|td|label]" +
        ",sub[span|a|i|b|u|sup|img|#text|tr|td|label]" +
        ",li[span|a|b|i|u|sup|sub|img|ol|ul|#text]" +
        ",ol[li]" +
        ",ul[li]",  
    

答案 1 :(得分:0)

我们使用编辑器定义电子邮件模板,使用我们自己的自定义语言和在发送电子邮件时替换的令牌。

所有建议的解决方案都不适用于我们,因为我们有时会将自定义语言与html混合,并且会不断地从我们输入的源代码中修改它,所以我们通过用注释包围无效的html来解决这个问题并添加一个特殊的直接在标签内部的字符序列,以便稍后删除这些特殊注释。

所以特殊标签可能如下所示: <!--~~ Invalid markup to not mess with ~~-->

然后,您可以在要使用或呈现内容时删除特殊标记<!--~~~~-->

缺点是注释之间的内容不会显示在编辑器中(或者在删除特殊注释标记之前在页面上显示)。