TrustedTypePolicyFactory: createPolicy() 方法
注意:此功能在 Web Workers 中可用。
TrustedTypePolicyFactory 接口的 createPolicy() 方法创建一个 TrustedTypePolicy 对象,该对象实现了作为 policyOptions 传入的规则。
语法
createPolicy(policyName, policyOptions)
参数
policyName-
一个包含策略名称的字符串。
policyOptions可选-
用于将字符串转换为受信任值的用户定义函数。
createHTML(input[,args])-
一个字符串形式的回调函数,其中包含在创建
TrustedHTML对象时要运行的代码。 createScript(input[,args])-
一个字符串形式的回调函数,其中包含在创建
TrustedScript对象时要运行的代码。 createScriptURL(input[,args])-
一个字符串形式的回调函数,其中包含在创建
TrustedScriptURL对象时要运行的代码。
返回值
一个 TrustedTypePolicy 对象。
异常
TypeError-
如果策略名称被 Content Security Policy
trusted-types指令 限制,并且此名称不在允许列表中,则会抛出此异常。 TypeError-
如果名称重复,并且 Content Security Policy trusted-types 指令 未使用
allow-duplicates,则会抛出此异常。
示例
为 HTML 接收器创建策略
以下代码创建一个名为 "myEscapePolicy" 的策略,并为 createHTML() 定义了一个用于清理 HTML 的函数。
const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
createHTML: (string) => string.replace(/</g, "<"),
});
创建默认策略
在一个通过 Content Security Policy 和 require-trusted-types-for 指令设置为 script 的策略强制执行 Trusted Types 的网站上,任何接受脚本的注入脚本都期望一个 Trusted Type 对象。如果插入的是字符串,则会使用 默认策略。
默认策略会在控制台记录一条消息,提醒开发者重构应用程序的这部分,以使用 Trusted Type 对象。它还会将默认策略的使用、类型和注入接收器的详细信息附加到返回值中。
trustedTypes.createPolicy("default", {
createScriptURL(s, type, sink) {
console.log("Please refactor.");
return `${s}?default-policy-used&type=${encodeURIComponent(
type,
)}&sink=${encodeURIComponent(sink)}`;
},
});
规范
| 规范 |
|---|
| Trusted Types # dom-trustedtypepolicyfactory-createpolicy |
浏览器兼容性
加载中…