CKEditor对脚本标记代码进行编码,并将其显示为文本,而不是对其进行注释



我使用CKEditor,我想添加一个脚本标记片段:

<script>alert();></script>

问题是,ckeditor正在注释此代码,因此它不会出现在编辑器中。我想要的是让ckeditor将此代码视为文本,而不是代码,这样它看起来像普通文本,也不在编辑器中执行它。

目前,我对这个代码片段进行编码并将其保存为已编码的,但当编辑器重新加载保存的数据时,即使其字符已编码,编辑器也会将其转换为HTML并如上所述对其进行注释。

谢谢。

最终得到了一个解决方案,但它是服务器端的,也可以使用JavaScript实现。对我来说,当我想重新加载保存的内容时,我会正则表达式HTML字符串中的所有脚本,然后转换"<"">""&lt;"/"&gt;",然后至"&amp;lt;"/"&amp;gt;"

这是重要的,因为仅转换为CCD_>quot;会导致CKEditor认为这是一个脚本代码而不是文本。

在匹配了所有脚本后,我用转换后的版本替换了它,一切都很好。这是完美的,因为不需要更改保存逻辑,只需要转换所需的标记并在编辑器中显示。

在PHP中,我使用:htmlspecialchars()函数进行转换。

最新更新