EJS站点中WYSIWYG编辑器存储的HTML显示为纯文本问题求助
EJS站点中WYSIWYG编辑器内容显示纯文本的解决办法
你遇到的问题核心是EJS模板的转义机制:
- 你使用的
<%= post %>语法会自动对HTML内容进行转义,把<、>这类HTML标签符号转换成<、>实体字符,导致通过innerHTML插入时,这些转义后的内容被当成纯文本展示,而非渲染成HTML元素。 - 手动编写的HTML字符串没有经过转义处理,所以能正常渲染成页面元素。
修复步骤
将代码中的<%= post %>替换为<%- post %>即可:
<div id="innerdiv"></div> <script> const nowWorks = "<%- post %>"; document.getElementById("innerdiv").innerHTML += nowWorks; </script>
<%- %>是EJS提供的非转义输出语法,会直接输出数据库中存储的原始HTML内容,不会对特殊字符进行转义,这样innerHTML就能正确解析并渲染出WYSIWYG编辑器生成的HTML结构了。
内容的提问来源于stack exchange,提问作者Gregory
相关产品推荐
相关产品推荐

