此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

TrustedHTML

基线 2026
最近可用

自 2026年2月 起,此特性已在最新浏览器中得到支持。但在较旧的设备或浏览器中可能无法运行。

备注: 此特性在 Web Worker 中可用。

可信类型 API 的 TrustedHTML 接口表示一个可以被开发者插入到注入汇聚点中、渲染为 HTML 的字符串。这些对象通过 TrustedTypePolicy.createHTML() 创建,因此没有构造函数。

TrustedHTML 对象的值在其创建时设置且不允许被 JavaScript 修改,因为其没有暴露 setter 方法。

实例方法

TrustedHTML.toJSON()

返回一个表示 TrustedHTML 对象的字符串,实际上与 TrustedHTML.toString() 的返回内容相同。此方法会由 JSON.stringify() 自动调用。

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

浏览器兼容性

参见