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

浏览器兼容性

另见