我刚刚在我正在构建的网站上安装了 CKeditor 富文本所见即所得编辑器,它似乎工作正常,除了它以编码的 html 而不是常规 html 的形式将文本插入到我的 mysql 数据库中,然后当浏览器输出它时text 它将编码数据转换为常规 html,然后显示在浏览器中,显示 html 标签,没有任何样式!?
例如我输入:
"This is text"
进入编辑器,然后插入
<p>This is text</p>
入数据库。然后当页面被调用时,浏览器转换上面的内容并在页面上输出以下内容:
<p>This is text</p>
显然我只想 "This is text"
显示在页面上。
有谁知道为什么会这样/如何解决?
欢迎提出任何建议。
干杯
原文由 Smokescreen 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您不希望 CKEditor 为您创建段落,请将
config.autoParagraph
设置为 false。此外,您可能希望将config.enterMode
设置为CKEDITOR.ENTER_BR
来更改输入键行为。关于消失的风格……
编辑:好的,看来我错过了你的意思。
所以您的网站在呈现您键入的内容时显示的是 HTML 标记而不是 HTML?那么问题是你的服务器端而不是 CKEditor。您可以在控制台中验证
CKEDITOR.instances.yourInstance.getData()
产生正确的、未转义的 HTML:如果是这样,我坚信它是,CKEditor 就好了,这是您的服务器应用程序,它在保存到数据库时将特殊字符转换为实体(即像 PHP htmlspecialchars )。你没有提到你在那里使用哪种框架/语言,所以我只能告诉你它是为了保护用户输入以防止跨站点脚本、破坏布局等,所有流行的框架都允许你禁用该功能一个特定的领域。只需参考文档。