webNavigation.onBeforeNavigate
在瀏覽器即將開始導航事件時觸發。
語法
js
browser.webNavigation.onBeforeNavigate.addListener(
listener, // function
filter // optional object
)
browser.webNavigation.onBeforeNavigate.removeListener(listener)
browser.webNavigation.onBeforeNavigate.hasListener(listener)
事件有三個函式
addListener(listener)-
向此事件新增監聽器。
removeListener(listener)-
停止監聽此事件。
listener引數是要移除的監聽器。 hasListener(listener)-
檢查
listener是否已為此事件註冊。如果正在監聽,則返回true,否則返回false。
addListener 語法
引數
監聽器-
當此事件發生時呼叫的函式。該函式將傳遞此引數
filter可選-
object。一個包含單個屬性url的物件,該屬性是一個Array,其中包含events.UrlFilter物件。如果您包含此引數,則僅在導航到至少一個與陣列中的UrlFilter匹配的URL時才會觸發該事件。如果省略此引數,則在所有導航時都會觸發該事件。
額外物件
details
tabId-
integer。導航即將發生的選項卡ID。 url-
string。給定框架將導航到的URL。 processId可選 已棄用-
integer。此值在現代瀏覽器中未設定。當設定時,它代表執行此選項卡渲染器的程序ID。 frameId-
integer。導航即將發生的幀。0表示導航發生在標籤頁的頂層瀏覽上下文中,而不是巢狀的<iframe>中。正值表示導航發生在巢狀的 iframe 中。幀 ID 在給定的標籤頁和程序中是唯一的。 parentFrameId-
integer。此框架父級的ID。如果這是頂層框架,則設定為-1。 timeStamp-
number。瀏覽器即將開始導航的時間,單位為 自紀元以來的毫秒數。
示例
如果目標主機名包含 "example.com" 或以 "developer" 開頭,則記錄 onBeforeNavigate 的目標 URL。
js
const filter = {
url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnBefore(details) {
console.log(`onBeforeNavigate to: ${details.url}`);
}
browser.webNavigation.onBeforeNavigate.addListener(logOnBefore, filter);
瀏覽器相容性
載入中…
注意:此API基於Chromium的chrome.webNavigation API。本文件源自Chromium程式碼中的web_navigation.json。