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 |
瀏覽器相容性
載入中…