webNavigation.onErrorOccurred

當發生錯誤且導航被中止時觸發。這可能是由於發生了網路錯誤,或者使用者中止了導航。

語法

js
browser.webNavigation.onErrorOccurred.addListener(
  listener,                   // function
  filter                      // optional object
)
browser.webNavigation.onErrorOccurred.removeListener(listener)
browser.webNavigation.onErrorOccurred.hasListener(listener)

事件有三個函式

addListener(listener), addListener(listener, filter)

向此事件新增監聽器。

removeListener(listener)

停止監聽此事件。listener 引數是要移除的監聽器。

hasListener(listener)

檢查 listener 是否已為此事件註冊。如果正在監聽,則返回 true,否則返回 false

addListener 語法

引數

監聽器

當此事件發生時呼叫的函式。

listener 函式將使用以下引數進行呼叫

details

object。有關導航事件的詳細資訊。details 具有以下屬性

tabId

integer。發生導航的標籤頁 ID。

url

string。給定框架正在導航到的 URL。

processId 可選 已棄用

integer。在現代瀏覽器中,此值永遠不會設定。它過去用於表示此標籤頁的渲染器程序的 ID。

frameId

integer。發生導航的框架。

0 表示導航發生在標籤頁的頂級瀏覽上下文中,而不是巢狀的 <iframe> 中。

正值表示導航發生在巢狀的 iframe 中。

對於給定的標籤頁和程序,框架 ID 是唯一的。

parentFrameId

integer。此框架父級的ID。如果這是頂層框架,則設定為-1

timeStamp

number。發生錯誤的時間,以自紀元以來的 毫秒為單位。

error

string。錯誤程式碼。這是一個內部錯誤程式碼,不保證在不同瀏覽器中保持不變或一致。

filter 可選

object。一個物件,包含單個屬性 url,它是一個 events.UrlFilter 物件的 Array

如果包含此引數,則僅當導航到的 URL 至少匹配陣列中的一個 UrlFilter 時,事件才會觸發。

如果省略此引數,則事件會觸發所有導航。

示例

如果目標 URL 的 hostname 包含 "example.com" 或以 "developer" 開頭,則記錄 onErrorOccurred 的目標 URL。

js
const filter = {
  url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};

function logOnErrorOccurred(details) {
  console.log(`onErrorOccurred: ${details.url}`);
  console.log(details.error);
}

browser.webNavigation.onErrorOccurred.addListener(logOnErrorOccurred, filter);

瀏覽器相容性

注意:此API基於Chromium的chrome.webNavigation API。本文件源自Chromium程式碼中的web_navigation.json