SanitizerConfig
HTML Sanitizer API 中的 SanitizerConfig 字典表示一个 sanitizer 配置对象。此配置指定了在将 HTML 字符串插入 或 Element 时,或在将 HTML 字符串解析为 ShadowRoot 时,允许或应移除哪些元素、属性和注释。Document
此类型的一个实例可以传递给 构造函数来配置一个 Sanitizer(),并且是 Sanitizer 返回的结果。当调用 Sanitizer.get()sanitization methods 时,它也可以作为 option.sanitizer 参数传递。
- 在
上调用Element或setHTML()。setHTMLUnsafe() - 在
上调用ShadowRoot或setHTML()。setHTMLUnsafe() - 静态方法
或Document.parseHTML()。Document.parseHTMLUnsafe()
请注意,在上述方法中,通常会传递一个 实例作为选项,而不是 SanitizerSanitizerConfig,特别是因为 sanitizer 实例更易于共享和修改,效率更高。
实例属性
elements-
一个数组,指示在清理 HTML 时允许的元素,还可以选择性地指定其允许或移除的属性。
每个元素可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
一个包含元素名称的字符串。
namespace可选-
一个包含元素命名空间的字符串。默认命名空间为
"http://www.w3.org/1999/xhtml"。 attributes可选-
一个数组,指示在清理 HTML 时允许在此(已允许的)元素上使用的属性。
每个属性可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
包含属性名称的字符串。
namespace可选-
一个包含属性命名空间的字符串,默认为
null。
removeAttributes可选-
一个数组,指示在清理 HTML 时要从此(已允许的)元素上移除的属性。
每个属性可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
包含属性名称的字符串。
namespace可选-
一个包含属性命名空间的字符串,默认为
null。
removeElements-
一个数组,指示在清理 HTML 时要移除的元素。
每个元素可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
一个包含元素名称的字符串。
namespace可选-
一个包含元素命名空间的字符串。默认命名空间为
"http://www.w3.org/1999/xhtml"。
replaceWithChildrenElements-
一个数组,指示在清理 HTML 时要用其子元素替换的元素。这主要用于去除文本中的样式(例如,您可以使用此方法将
<b>some text</b>更改为some text)。每个元素可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
一个包含元素名称的字符串。
namespace可选-
一个包含元素命名空间的字符串。默认命名空间为
"http://www.w3.org/1999/xhtml"。
attributes-
一个数组,指示在清理 HTML 时允许的属性。
每个属性可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
包含属性名称的字符串。
namespace可选-
一个包含属性命名空间的字符串,默认为
null。
removeAttributes-
一个数组,指示在清理 HTML 时要从元素中移除的属性。
每个属性可以按名称(字符串)指定,或者作为一个具有以下属性的对象指定:
name-
包含属性名称的字符串。
namespace可选-
一个包含属性命名空间的字符串,默认为
null。
comments-
如果允许注释,则为
true;如果应移除注释,则为false。 dataAttributes-
如果允许 data 属性,则为
true;如果应移除 data 属性,则为false。
示例
创建一个“允许”配置
本示例展示了如何创建一个“允许” sanitizer 配置,并将其传递给 构造函数。Sanitizer()
const sanitizer = new Sanitizer({
elements: ["div", "p", "script"],
attributes: ["id"],
replaceWithChildrenElements: ["b"],
comments: true,
dataAttributes: false,
});
请注意,您不能在同一个配置中同时指定允许列表和移除列表,否则在将配置传递给构造函数或 sanitization 方法时会引发异常。
创建一个“移除”配置
本示例展示了如何创建一个“移除” sanitizer 配置,并将其传递给 构造函数。Sanitizer()
const sanitizer = new Sanitizer({
removeElements: ["span", "script"],
removeAttributes: ["lang", "id"],
comments: false,
});
请注意,您不能在同一个配置中同时指定允许列表和移除列表,否则在将配置传递给构造函数或 sanitization 方法时会引发异常。
规范
| 规范 |
|---|
| HTML Sanitizer API # dom-sanitizer-get |
| HTML Sanitizer API # dom-sanitizer-sanitizer |
浏览器兼容性
api.Sanitizer.get
加载中…
api.Sanitizer.Sanitizer
加载中…