TrustedTypePolicy

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

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

TrustedTypePolicy 接口属于 Trusted Types API,它定义了一组用于创建 TrustedType 对象的函数。

TrustedTypePolicy 对象由 TrustedTypePolicyFactory.createPolicy() 创建,用于定义对输入内容实施安全规则的策略。因此,TrustedTypePolicy 没有构造函数。

实例属性

TrustedTypePolicy.name 只读

包含策略名称的字符串。

实例方法

TrustedTypePolicy.createHTML()

创建一个 TrustedHTML 对象。

TrustedTypePolicy.createScript()

创建一个 TrustedScript 对象。

TrustedTypePolicy.createScriptURL()

创建一个 TrustedScriptURL 对象。

示例

在下面的示例中,我们使用 TrustedTypePolicyFactory.createPolicy() 创建一个策略,该策略将创建 TrustedHTML 对象。然后我们可以使用 TrustedTypePolicy.createHTML 来创建一个经过清理的 HTML 字符串,以便插入到文档中。

净化后的值然后可以与 Element.innerHTML 一起使用,以确保不会注入新的 HTML 元素。

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

let el = document.getElementById("myDiv");
const escaped = escapeHTMLPolicy.createHTML("<img src=x onerror=alert(1)>");
console.log(escaped instanceof TrustedHTML); // true
el.innerHTML = escaped;

规范

规范
Trusted Types
# trusted-type-policy

浏览器兼容性