CKEditor和代码解析 - 提交“<! - ?”后奇怪的改变代码 - >

时间:2013-12-13 16:56:35

标签: ckeditor

如果我尝试将"<?"代码写入我的CKEditor,它将被转换为

<p>&lt;? lol</p>

没关系。但是,如果我提交表单并重新加载页面,我会看到:

<p><!--? lol</p--></p>

有什么想法吗?

修改

更改后的数据是在带有表单的页面之后重新加载新提交的数据。

我尝试的唯一一个解决方案是改为“<?”写@@,然后在我的模板中将其替换回<?。我希望它在我的文章中将php代码写为文本。但这不是最佳解决方案。

2 个答案:

答案 0 :(得分:2)

我解释了为什么会在http://dev.ckeditor.com/ticket/11312

中发生

这是因为在将内容输出到textarea时,您的页面不会对内容进行编码。

这将正常工作:

<textarea class="ckeditor">
&lt;p&gt;&amp;lt;? lol&lt;/p&gt;
</textarea>

这不会:

<textarea class="ckeditor">
<p>&lt;? lol</p>
</textarea>

因为当CKEditor尝试从第二个textarea读取内容时,它会得到:

<p><? lol</p>

这就是HTML不正确。

您的系统必须全部替换:

  • <&lt;
  • &&amp;
  • >&gt;

打印textarea的HTML时。

答案 1 :(得分:1)

因为这是正确的HTML标记。

这是一个命名的字符引用 命名字符引用通常随便称为实体

MDN HTML Intro

中的详细信息