我使用CKEditor,我想添加一个脚本标记片段:
<script>alert();></script>
问题是,ckeditor正在注释此代码,因此它不会出现在编辑器中。我想要的是让ckeditor将此代码视为文本,而不是代码,这样它看起来像普通文本,也不在编辑器中执行它。
目前,我对这个代码片段进行编码并将其保存为已编码的,但当编辑器重新加载保存的数据时,即使其字符已编码,编辑器也会将其转换为HTML并如上所述对其进行注释。
谢谢。
最终得到了一个解决方案,但它是服务器端的,也可以使用JavaScript实现。对我来说,当我想重新加载保存的内容时,我会正则表达式HTML字符串中的所有脚本,然后转换"<"
和">"
至"<"
/">"
,然后至"&lt;"
/"&gt;"
这是重要的,因为仅转换为CCD_>quot;会导致CKEditor认为这是一个脚本代码而不是文本。
在匹配了所有脚本后,我用转换后的版本替换了它,一切都很好。这是完美的,因为不需要更改保存逻辑,只需要转换所需的标记并在编辑器中显示。
在PHP中,我使用:htmlspecialchars()
函数进行转换。