TrustedTypePolicyFactory

有限可用性

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法正常工作。

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

TrustedTypePolicyFactory 接口是 Trusted Types API 的一部分,它用于创建策略并允许根据创建的策略验证受信任类型对象。

实例属性

TrustedTypePolicyFactory.emptyHTML 只读

返回包含空字符串的 TrustedHTML 对象。

TrustedTypePolicyFactory.emptyScript 只读

返回包含空字符串的 TrustedScript 对象。

TrustedTypePolicyFactory.defaultPolicy 只读

返回默认的 TrustedTypePolicy,如果为空则返回 null。

实例方法

TrustedTypePolicyFactory.createPolicy()

创建一个 TrustedTypePolicy 对象,该对象实现了作为 policyOptions 传递的规则。

TrustedTypePolicyFactory.isHTML()

当传递一个值时,检查它是否为有效的 TrustedHTML 对象。

TrustedTypePolicyFactory.isScript()

当传递一个值时,检查它是否为有效的 TrustedScript 对象。

TrustedTypePolicyFactory.isScriptURL()

当传递一个值时,检查它是否为有效的 TrustedScriptURL 对象。

TrustedTypePolicyFactory.getAttributeType()

允许 Web 开发人员检查元素和属性是否需要受信任类型,如果需要,则检查需要哪种类型。

TrustedTypePolicyFactory.getPropertyType()

允许 Web 开发人员检查属性是否需要受信任类型,如果需要,则检查需要哪种类型。

示例

以下代码创建了一个名为 "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

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。