webNavigation.onCreatedNavigationTarget
當建立新視窗或現有視窗的新標籤頁來承載導航目標時觸發。例如,當以下情況發生時會發送此事件:
- 使用者在新標籤頁或視窗中開啟連結
- 網頁使用
window.open()在新標籤頁或視窗中載入資源(但請注意,如果瀏覽器的彈出視窗阻止程式阻止了載入,則不會發送此事件)。
如果標籤頁或視窗是在沒有導航目標的情況下建立的(例如,使用者透過按 Ctrl+T 開啟新標籤頁),則不會發送此事件。
如果此事件被觸發,它將在 webNavigation.onBeforeNavigate 之前觸發。
語法
browser.webNavigation.onCreatedNavigationTarget.addListener(
listener, // function
filter // optional object
)
browser.webNavigation.onCreatedNavigationTarget.removeListener(listener)
browser.webNavigation.onCreatedNavigationTarget.hasListener(listener)
事件有三個函式
addListener(listener)-
向此事件新增監聽器。
removeListener(listener)-
停止監聽此事件。
listener引數是要移除的監聽器。 hasListener(listener)-
檢查
listener是否已為此事件註冊。如果正在監聽,則返回true,否則返回false。
addListener 語法
引數
監聽器-
當此事件發生時呼叫的函式。該函式將傳遞此引數
filter可選-
object。一個包含單個屬性url的物件,該屬性是Array,其中包含events.UrlFilter物件。如果包含此引數,則事件僅針對匹配陣列中至少一個UrlFilter的過渡觸發。如果省略此引數,則事件針對所有過渡觸發。請注意,filter在 Firefox 中不受支援。
額外物件
details
sourceFrameId-
integer。發起導航的框架的 ID。0表示該框架是標籤頁的頂級瀏覽上下文,而不是巢狀的<iframe>。正值表示導航是從巢狀 iframe 發起的。對於給定的標籤頁和程序,框架 ID 是唯一的。 processId可選 已棄用-
integer。此值在現代瀏覽器中未設定。當它被設定時,它代表導航起源程序的 ID。 sourceTabId-
integer。發起導航的標籤頁的 ID。例如,如果使用者在新標籤頁中開啟連結,這將是包含該連結的標籤頁的 ID。 tabId-
integer。新建立標籤頁的 ID。 timeStamp-
number。瀏覽器建立導航目標的時間,以自紀元以來的 毫秒為單位。 url-
string。將在新標籤頁中載入的 URL。 windowId-
number。建立新標籤頁的視窗的 ID。
示例
如果目標的主機名包含“example.com”或以“developer”開頭,則記錄 onCreatedNavigationTarget 的目標 URL、源標籤頁 ID 和源框架 ID。
const filter = {
url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnCreatedNavigationTarget(details) {
console.log(`onCreatedNavigationTarget: ${details.url}`);
console.log(details.sourceTabId);
console.log(details.sourceFrameId);
}
browser.webNavigation.onCreatedNavigationTarget.addListener(
logOnCreatedNavigationTarget,
filter,
);
瀏覽器相容性
載入中…
注意:此API基於Chromium的chrome.webNavigation API。本文件源自Chromium程式碼中的web_navigation.json。