TrustedHTML
>备注: 此特性在 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, "<"),
});
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> |