CKEditor5从数据库加载内容未转义HTML,如何正常渲染?
解决CKEditor5在EJS编辑模式下显示HTML标签的问题
- 问题核心:你用
<%= event.content %>给textarea的value属性赋值时,EJS会自动转义HTML实体(把<变成<),CKEditor读取到的是转义后的文本,所以直接显示标签而非解析后的富文本。 - 修复步骤:
- 移除textarea的
value属性,把HTML内容直接写入textarea标签内部 - 使用EJS的
<%- %>标签输出内容(<%-不会转义HTML,<%=会转义),示例代码:<textarea name="content" id="editor"><%- event.content %></textarea> - 确保CKEditor初始化时读取的是textarea内部的内容,Classic Editor默认会自动读取,无需额外配置。
- 移除textarea的
- 备选方案(如果需要动态设置):
初始化CKEditor后,调用setData方法手动传入原始HTML内容:ClassicEditor .create(document.querySelector('#editor')) .then(editor => { // 动态设置富文本内容 editor.setData('<%- event.content %>'); }) .catch(error => { console.error(error); });
内容的提问来源于stack exchange,提问作者Sidney Sousa
相关产品推荐
相关产品推荐

