javascript - TinyMCE - 允许文本作为 <table> 和/或 <tr> 的直接子元素

标签 javascript jquery tinymce tinymce-4

我已经苦苦挣扎了大约 3 个小时,既测试解决方案又像疯子一样在谷歌上搜索。 我还没有找到解决这个特定问题的方法。

问题: TinyMCE 不允许我将文本作为直接“子项”插入:

<table>
<tr>
<tbody>

示例:我使用 TinyMCE Option > Source Code。
输入:

<table>
<tr></tr>
 *[generated]*
</table>

然后我在“源代码”窗口中按“确定”时,输出如下:

*[generated]*
<table>
<tbody>
<tr></tr>
</tbody>
</table>

会发生什么是 TinyMCE 将标记验证为无效并将我的“文本”([生成])添加到表外。

原因:我想要这个解决方案,因为 cms 引擎采用静态 HTML 并找到特殊元素来插入数据动态数据。数据将包含有效的 HTML,之后我的 [generated] 标签将不会存在于生成的页面中。

我做了什么?我一直在尝试:

extend_valid_elements: "table[#text], table[text], tr[#text],tr[text]",
valid_elements:        "table[theader|tbody|#text|]",
valid_children:        "table[theader|tbody|#text]"

我不可能粘贴我一直试图允许的所有不同元素。但是现在我没主意了。而且我不想为此做一个肮脏的黑客。

有没有人可以帮助我? 我的设置都是标准的,我只是添加了一些插件。

verify_html: false, cleanup: false,

但不管是什么插件/设置造成的,我都会删除。

英语不是我的母语,但我希望我能说清楚。

最佳答案

我有一些好消息要告诉你。 TinyMCE 文档建议 valid_elements 和 valid_children 允许一些特殊的控制字符。其中一个字符是允许所有选项。

但是,它仍然需要是一个以 < > 而不是 # 开头和结尾的元素。更好的可能是评论,所以

也就是说,您可以将 valid_children 设置为“”或“##”。不确定它将如何应对更换。

我还会看一下您的 cms 文档。如果它足够聪明来处理 html 属性,你可以走那条路,或者我们上面提到的 html 注释。

最后,您可以使用 beforeload 和 beforesave 样式函数作为 MCE 的一部分或在您自己的代码中将任何#something# 转换成然后从中返回。

http://www.tinymce.com/wiki.php/Configuration:valid_elements http://www.tinymce.com/wiki.php/Configuration:valid_children

关于javascript - TinyMCE - 允许文本作为 <table> 和/或 <tr> 的直接子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290606/

相关文章:

JQuery 覆盖元素

javascript - 相同的 jQuery 代码在本地和在线服务器上写入不同的 JSON 数据

javascript - 添加验证以查看是否未选择单选按钮

javascript - 如何更新 div 元素内 html 元素的 id 和名称?

javascript - 将鼠标悬停在显示子项的项目上并对其他项目进行动画处理时

javascript - 如何完全禁用任何鼠标单击

javascript - tinymce textarea 的 Knockout JS 问题

c# - JSON TinyMCE 返回值 "\t"

angularjs - 使用 Tinymce (ui-tinymce) 时使用 Angular ng-messages 验证文本区域

javascript - 在页面加载期间使用 firecookie 捕获 cookie