Navigator:deprecatedReplaceInURN() 方法
Navigator 介面的 deprecatedReplaceInURN() 方法用於替換與給定不透明 URN 或 FencedFrameConfig 的內部 url 屬性對應的對映 URL 中的指定字串。
FencedFrameConfig 或不透明 URN 來自例如 Protected Audience API 的 runAdAuction() 方法,然後將其設定為 HTMLFencedFrameElement.config 的值。與 FencedFrameConfig 或不透明 URN 關聯的內容 URL 由瀏覽器在內部對映到它,無法透過 JavaScript 訪問。
但是,您可能希望替換此內部 URL 的部分內容。這是將執行時資料傳遞到廣告素材以用於渲染的常用方法。deprecatedReplaceInURN() 作為一種臨時措施提供,用於實現圍欄幀 URL 的替換,以幫助廣告技術提供商將現有實現遷移到 隱私沙盒 API。
語法
js
deprecatedReplaceInURN(UrnOrConfig, replacements)
引數
UrnOrConfig-
一個
FencedFrameConfig物件或一個不透明 URN,您希望替換與之對應的內部 URL 的部分內容。 replacements-
一個包含一個或多個屬性的物件,這些屬性表示您希望在內部 URL 中進行的替換。每個屬性鍵是要替換的 URL 的一部分,每個屬性值是要替換它的字串。請注意,
- 要替換的 URL 的一部分必須是以下格式之一
${string}%%string%%
- 如果 URL 的一部分格式正確,但該部分在 URL 中未找到,則返回的 Promise 仍然會 fulfilled,但不會進行任何替換。
- 要替換的 URL 的一部分必須是以下格式之一
返回值
異常
TypeErrorDOMException-
在以下情況下丟擲
UrnOrConfig不是有效的FencedFrameConfig物件或不透明 URN。- 指定的任何替換鍵都不符合允許的格式。
示例
以下呼叫可用於返回不透明 URN
js
const exampleURN = await navigator.runAdAuction({
...auctionConfig,
resolveToConfig: false,
});
然後,您可以使用如下的 deprecatedReplaceInURN() 呼叫來替換 URL 的一部分
js
await navigator.deprecatedReplaceInURN(exampleURN, {
"${foo}": "1",
"${bar}": "2",
"%%baz%%": "3",
});
如果與 URN 關聯的內部 URL 最初是
http
https://example.com/a=${foo}&b=${bar}&c=%%baz%%
替換後它將變為
http
https://example.com/a=1&b=2&c=3
規範
| 規範 |
|---|
| 圍欄框架 # dom-navigator-deprecatedreplaceinurn |
瀏覽器相容性
載入中…