我有一个页面,想要使用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设置,但似乎没有帮助
由于
答案 0 :(得分:2)
你有两个选择
cleanup: false,
tinymce init设置
禁用html检查或者您可以使用更好的选项
2 ..并定义编辑器应接受哪些元素和childelements为有效
在您的情况下,您的valid_elements不需要更新,因为tr
,td
和label
默认情况下已经是有效元素(但如果您愿意,可以将它们定义为无效) 。
您需要做的是将它们作为有效子项添加到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 ~~-->
然后,您可以在要使用或呈现内容时删除特殊标记<!--~~
和~~-->
。
缺点是注释之间的内容不会显示在编辑器中(或者在删除特殊注释标记之前在页面上显示)。