Document: parseHTML() 静态方法
Document 对象的 parseHTML() 静态方法提供了一种 XSS 安全的方法来解析和清理 HTML 字符串,从而创建一个新的 Document 实例。
语法
Document.parseHTML(input)
Document.parseHTML(input, options)
参数
input-
定义要清理并注入到 Shadow Root 中的 HTML 字符串。
options可选-
一个包含以下可选参数的 options 对象
sanitizer-
一个
Sanitizer或SanitizerConfig对象,它定义了输入中允许或删除的元素,或者是字符串"default",用于默认的清理器配置。请注意,如果配置需要重复使用,通常"Sanitizer"比SanitizerConfig更高效。如果未指定,则使用 XSS 安全的默认清理器配置。
返回值
一个 Document。
异常
TypeError-
如果
options.sanitizer传递了以下内容,则抛出此错误- 非规范化的
SanitizerConfig(包含“允许”和“移除”配置设置)。 - 不具有值
"default"的字符串。 - 不是
Sanitizer、SanitizerConfig或字符串的值。
- 非规范化的
描述
parseHTML() 方法解析并清理 HTML 字符串,以创建一个 XSS 安全的新 Document 实例。生成的 Document 将具有“text/html”的 内容类型、“UTF-8”的 字符集 和“about:blank”的 URL。
如果在 options.sanitizer 参数中未指定清理器配置,则 parseHTML() 将使用默认的 Sanitizer 配置。此配置允许所有被认为是 XSS 安全的元素和属性,从而禁止被认为不安全的实体。可以指定自定义清理器或清理器配置,以选择允许或删除哪些元素、属性和注释。请注意,即使清理器配置允许不安全的选项,使用此方法时仍会将其删除(该方法隐式调用 Sanitizer.removeUnsafe())。
输入 HTML 可能包含 声明式 Shadow Root。如果 HTML 字符串在特定 Shadow Host 中定义了多个 声明式 Shadow Root,则只创建第一个 ShadowRoot — 后续声明将作为该 Shadow Root 中的 <template> 元素进行解析。
除非有特殊需要允许不安全的元素和属性,否则应使用 parseHTML() 而非 Document.parseHTMLUnsafe()。如果需要解析的 HTML 不包含不安全的 HTML 实体,则应使用 Document.parseHTML()。
请注意,由于此方法始终对 XSS 不安全实体的输入字符串进行清理,因此它不受 Trusted Types API 的保护或验证。
规范
| 规范 |
|---|
| HTML Sanitizer API # dom-document-parsehtml |
浏览器兼容性
加载中…