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 |
瀏覽器相容性
載入中…