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

浏览器兼容性