TinyMCE 似乎在内容的特定情况下删除了 Javascript。在我的测试中,我使用编辑器查看页面并打开编辑器的“源代码”窗口以手动插入以下代码:
<script>
document.getElementById('test').innerHTML = 'Replacement text';
</script>
然后我使用“保存”按钮关闭源代码窗口。 如果我重新打开“源代码”窗口,代码就在那里。 但是,如果我通过在引用的替换文本中添加 HTML 标记作为innerHTML 分配的一部分来修改代码:
<script>
document.getElementById('test').innerHTML = '<b>Replacement text</b>';
</script>
使用“保存”关闭窗口,然后重新打开它,所有 Javascript 都被删除,源代码窗口为空。
我不确定是否需要更改初始化属性以使其正常工作,或者这是否是一个错误。
谢谢!
TinyMCE 默认不允许使用脚本。这是故意的,因为在编辑器内容中使用第三方脚本可能会带来严重的安全问题。跨站脚本攻击的可能性是非常危险的。
您可以通过
<script>
在 TinyMCE 中允许使用
extended_valid_elements
标签。但需要注意的是,即使脚本没有从 TinyMCE 内容中删除,编辑器也不会允许它们实际运行。
因此,您可以将脚本添加到内容中,但它们不会在编辑器本身中启动。只是在它之外的某个地方。例如,如果文档作为网页在您的网站上保存并打开。
我知道我迟到了,但我们遇到了同样的问题,解决方案是关闭清理,清理对于避免 XSS 攻击很重要,这就是他们删除具有 html 元素的脚本的原因,但如果您了解您的用户并且他们是可信的,那么您可以使用tinymce配置中的以下选项将其关闭: xss_sanitization:假,