Drupal 9.5中CKEditor 5无法渲染HTML与JS代码问题咨询
Drupal 9.5 中 CKEditor 5 无法渲染 HTML/JS 代码的解决方法
核心问题原因
CKEditor 5 配合 Drupal 的文本格式过滤器,默认会过滤或转义「不安全」的 HTML 标签(如 <script>)以及特殊字符,导致插入的 HTML/JS 无法被渲染,只能显示原始代码。
具体解决步骤
1. 调整文本格式的过滤规则
- 进入后台「配置」→「内容创作」→「文本格式和编辑器」
- 找到你使用的目标文本格式(比如「富文本」),点击「配置」按钮
- 在「过滤器设置」区域:
- 找到「限制允许的 HTML 标签和纠正错误的 HTML」过滤器,点击「配置」:
- 在「允许的 HTML 标签」输入框中,添加你需要的标签,比如要允许脚本就加入
<script>,同时保留必要的结构标签(如<div>,<span>等) - 取消勾选「纠正错误的 HTML」选项,避免自动转义特殊字符
- 在「允许的 HTML 标签」输入框中,添加你需要的标签,比如要允许脚本就加入
- 若不需要严格过滤,可直接禁用「限制允许的 HTML 标签...」和「纠正错误的 HTML」这两个过滤器
- 找到「限制允许的 HTML 标签和纠正错误的 HTML」过滤器,点击「配置」:
2. 配置 CKEditor 5 插件权限
- 在同一文本格式配置页面的「CKEditor 5 插件」区域,确保启用「源代码编辑」插件
- 启用后,回到编辑器界面,切换到源代码模式插入 HTML/JS 代码时,过滤器不会自动转义你的内容(前提是已调整好上面的过滤规则)
3. 注意代码块插件的用途
CKEditor 5 默认的「代码块」插件是用于显示代码(语法高亮),而不是执行或渲染代码。如果你要渲染 HTML/JS,不要用代码块工具,直接在源代码模式下插入原生标签即可。
重要安全提示
允许 <script> 等可执行标签会带来 XSS 攻击风险,务必确保使用该文本格式的用户都是可信用户(如管理员),且仅在内部测试站点或非公开内容中使用此配置,生产环境需谨慎评估安全风险。
内容的提问来源于stack exchange,提问作者vjprabhakar
相关产品推荐
相关产品推荐

