Navigator:deprecatedReplaceInURN() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

Navigator 介面的 deprecatedReplaceInURN() 方法用於替換與給定不透明 URN 或 FencedFrameConfig 的內部 url 屬性對應的對映 URL 中的指定字串。

FencedFrameConfig 或不透明 URN 來自例如 Protected Audience APIrunAdAuction() 方法,然後將其設定為 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,但不會進行任何替換。

返回值

一個 Promise,它 fulfilled 為 undefined

異常

TypeError DOMException

在以下情況下丟擲

  • 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

瀏覽器相容性

另見