介绍
DOMPurify 用于进行 HTML 文本的过滤,它会尽可能保留更多无害的属性,尽可能保持原有效果。它基于 dom,生成 dom 树后对其各属性进行过滤,执行效率高。
安装使用
安装:
npm i -S dompurify
新版提供了静态方法,更易于使用:
import * as DOMPurify from 'dompurify';
let clean = DOMPurify.sanitize('<b>hello there</b>');
也可在 Node.js 中使用,需配合 jsdom 使用。
另外, Vue 中有 vue-dompurify-html 这个包,可以直接使用 v-dompurify-html 替代 v-html,非常方便。
常用设置
默认允许 HTML、SVG 和 MathML,设置只需要 HTML:
{ USE_PROFILES: { html: true } }
默认会过滤掉 target 属性,如需保留,可设置:
{ ADD_ATTR: ['target'] }
<style>
标签前面无内容时,会被过滤掉,增加设置:
{ FORCE_BODY: true }