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, "<"),
});
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 表格仅在浏览器中加载