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
載入中…