TrustedHTML

有限可用性

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

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

TrustedHTML 接口是 Trusted Types API 的一部分,表示开发人员可以插入到 注入槽 中的字符串,该字符串将以 HTML 形式呈现。这些对象通过 TrustedTypePolicy.createHTML() 创建,因此没有构造函数。

TrustedHTML 对象的值在创建对象时设置,并且无法通过 JavaScript 更改,因为没有公开的设置器。

实例方法

TrustedHTML.toJSON()

返回存储数据的 JSON 表示形式。

TrustedHTML.toString()

包含已清理 HTML 的字符串。

示例

在以下示例中,我们创建了一个策略,该策略将使用 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-html

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅