html语句的应用_新版编辑器支持html语句变化【详解】

1次阅读

新版编辑器html支持基于白名单和运行时过滤,禁用script、iframe、onerror等危险标签与属性;仅允许语义安全标签如b、i、ultable等,div和span需后端显式开启;class须预配置且受css支持限制,style基本被全禁;所有执行性代码在提交前被sanitizer强制移除。

html语句的应用_新版编辑器支持html语句变化【详解】

新版编辑器对 HTML 的支持不是“全放开”,而是有明确白名单和运行时过滤机制——直接写 或内联 onerror 事件会被静默剥离,不是失效,是压根不会进入 dom

哪些 HTML 标签能用?看编辑器的白名单配置

新版编辑器通常基于类似 DOMPurify 的净化逻辑,默认只保留语义安全的标签。常见可用标签包括:


    • 。但注意:

      是否允许,取决于后端是否在白名单中显式开启——很多部署默认禁用它们以防止样式逃逸。

      •  写代码块时,必须成对闭合,且中间不能混入未转义的 >,否则整段被截断


      • 中禁止出现 style="width:100%" 这类内联样式,宽度需靠 class 控制(如果编辑器支持 class 白名单)

      • html语句的应用_新版编辑器支持html语句变化【详解】 只允许 srcalt 属性,onloaddata-src 等一概被删
      • class 和 style 怎么生效?得看后端策略

        不是所有 class 都有效。class="tuc-19bc10f7-953ae2-0 high<a href= tuc-19bc10f7-953ae2-0"https://seo.sqjnqi.com/tag/li/">light" 能否起作用,取决于两个条件:前端 CSS 是否定义了该类,且后端净化器是否允许该 class 名通过。多数生产环境只放行有限几个 class,如 ql-align-center(Quill 衍生编辑器常用)、language-javascript(用于代码高亮)。style 属性则基本被全禁——即使写了 style="color:red",也会在保存前被移除。

        • 想加颜色或字体大小?改用语义化标签: → 改写为 (如果编辑器仍支持 )或依赖编辑器内置 toolbar 按钮
        • 自定义 class 必须提前在编辑器初始化时通过 allowedClasses 配置项声明,否则 runtime 会过滤掉
        • 某些编辑器(如 TipTap)用 ProseMirror 底层,class 是通过 nodeSpec 的 addAttributes 显式注册的,硬写无效

        为什么

        这不是 bug,是强制安全策略。新版编辑器在内容提交前会调用 HTML sanitizer(例如 DOMPurify.withConfig),自动移除所有含执行能力的节点和属性。你看到的“没反应”,其实是内容还没发出去就被切掉了。

        立即学习前端免费学习笔记(深入)”;

        • → 整个 script 标签连同内容被删除
        • onclick 属性被删,只剩
        • 链接href 值被重写为 #,防止 js 执行
        • 想实现交互?必须走编辑器插件机制,比如注册自定义 node 或用 data 属性配合外部 JS 监听(前提是该 data 属性在白名单里)

        真正容易被忽略的是:HTML 输入后的实时预览和最终渲染可能走两套解析流程——编辑器内部用 Quill/ProseMirror 渲染,而详情页可能用服务端 markdown 转 HTML + 净化,导致同一段 HTML 在两边表现不一致。上线前务必在发布态下实测,别只信编辑器里的“所见即所得”。

      Copyright ©  SEO

       Theme by Puock