TrustedTypePolicyFactory

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

注意:此功能在 Web Workers 中可用。

TrustedTypePolicyFactory 介面是 Trusted Types API 的一部分,用於建立策略並允許將 Trusted Type 物件與已建立的策略進行驗證。

例項屬性

TrustedTypePolicyFactory.emptyHTML 只讀

返回一個包含空字串的 TrustedHTML 物件。

TrustedTypePolicyFactory.emptyScript 只讀

返回一個包含空字串的 TrustedScript 物件。

TrustedTypePolicyFactory.defaultPolicy 只讀

返回預設的 TrustedTypePolicy,如果為空則返回 null。

例項方法

TrustedTypePolicyFactory.createPolicy()

建立一個實現作為 policyOptions 傳遞的規則的 TrustedTypePolicy 物件。

TrustedTypePolicyFactory.isHTML()

當傳入一個值時,檢查它是否是一個有效的 TrustedHTML 物件。

TrustedTypePolicyFactory.isScript()

當傳入一個值時,檢查它是否是一個有效的 TrustedScript 物件。

TrustedTypePolicyFactory.isScriptURL()

當傳入一個值時,檢查它是否是一個有效的 TrustedScriptURL 物件。

TrustedTypePolicyFactory.getAttributeType()

允許 Web 開發者檢查元素和屬性是否需要 Trusted Type,以及需要哪種 Trusted Type。

TrustedTypePolicyFactory.getPropertyType()

允許 Web 開發者檢查屬性是否需要 Trusted Type,以及需要哪種 Trusted Type。

示例

下面的程式碼建立了一個名為 "myEscapePolicy" 的策略,其中定義了一個用於 createHTML() 的函式,該函式可以清理 HTML。

然後,我們使用該策略來清理一個字串,建立一個 TrustedHTML 物件 escaped。可以使用 isHTML() 來測試此物件,以確保它是由我們的策略建立的。

js
const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
  createHTML: (string) => string.replace(/</g, "&lt;"),
});

const escaped = escapeHTMLPolicy.createHTML("<img src=x onerror=alert(1)>");

console.log(trustedTypes.isHTML(escaped)); // true;

規範

規範
Trusted Types
# trusted-type-policy-factory

瀏覽器相容性