我在管理区域中有一个tinymce编辑器,我想使用脚本标签。通过使用follows,我可以使用标签并保存它。之后,我可以在保存的数据库中看到它。但是问题是,当我再次编辑同一页面并且编辑器预加载了内容之后,它就以某种方式剥离了标签。所以我看不到它并再次编辑。
valid_children : '+body[style],+body[script]',
extended_valid_elements : '*[*]',
因此,请让我知道是否有什么方法可以阻止这些脚本标记剥离。我曾尝试通过conlog记录editor.getContent(),但它也显示没有标签的内容,而我可以在数据库和前端源中看到它。
谢谢
答案 0 :(得分:0)
通过尝试将结束脚本标签作为JavaScript本身的字符串的一部分来加载,您可能会陷入困境。
如果JavaScript字符串中有结束脚本(</script>
)标记,则解释器可能会将其解释为脚本块的结束,而不是字符串中内容的一部分。在许多情况下,这只会完全破坏页面的JavaScript。
以下是TinyMCE Fiddle中的一个示例,该示例显示了在字符串中传递</script>
标签的正确方法:http://fiddle.tinymce.com/Fvhaab
例如:
tinymce.editors[0].setContent(`
<p>This is NEW content in TinyMCE!</p>
<script>
var x = "test";
var y = 10;
</script>
`);
...将不起作用。如果将此尝试用于结束脚本标签,您将看到编辑器根本不出现,因为该结束脚本标签过早地结束了JavaScript的整个部分。
相反,您可以在结束脚本标记中转义/
:
tinymce.editors[0].setContent(`
<p>This is NEW content in TinyMCE!</p>
<script>
var x = "test";
var y = 10;
<\/script>
`);
...,您将看到脚本已按预期加载到TinyMCE中。