1

我有一个页面,想使用 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 设置,但在这里似乎没有帮助

谢谢

4

2 回答 2

2

你在这里有两个选择

  1. 您使用cleanup: false,tinymce init 设置将禁用 html 检查

或者你可以使用更好的选择

2..并定义编辑器应该接受哪些元素和子元素是有效的

在您的情况下,您的 valid_elements 不需要更新,因为默认情况tr下已经是有效元素(但如果您愿意,您可以将它们定义为无效)。您需要做的是将它们作为有效的子元素添加到设置中。如果要将 tr 标签定义为 p-tags 和其他元素的有效子元素,则需要设置类似这样的内容tdlabelvalid_children

    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]",  
于 2012-01-31T09:55:57.007 回答
0

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

建议的解决方案都不适合我们,因为我们有时会将自定义语言与 html 混合使用,并且它会不断从我们输入的源代码中对其进行修改,因此我们通过在无效的 html 周围加上注释并直接添加特殊字符序列来解决它在标签内知道稍后删除这些特殊注释。

所以特殊标签可能看起来像: <!--~~ Invalid markup to not mess with ~~-->

<!--~~然后,您可以删除特殊标签以及~~-->何时使用或呈现内容。

缺点是评论之间的内容不会显示在编辑器中(或在页面上,直到特殊评论标签被删除)。

于 2015-01-22T16:52:00.850 回答