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

当此事件发生时调用的函数。

listener 函数使用以下参数调用

details

object。有关导航事件的详细信息。details 具有以下属性

tabId

integer。发生导航的选项卡的 ID。

url

string。给定框架正在导航到的 URL。

processId 可选 已弃用

integer。此值在现代浏览器中从未设置。它用于表示为该选项卡运行渲染器的进程的 ID。

frameId

integer。发生导航的框架。

0 表示导航发生在选项卡的顶级浏览上下文中,而不是嵌套的 <iframe> 中。

正值表示导航发生在嵌套的 iframe 中。

框架 ID 对给定的选项卡和进程是唯一的。

timeStamp

number。发生错误的时间,以自纪元以来的毫秒数 为单位。

error

string。错误代码。这是一个内部错误代码,不能保证在不同的浏览器之间保持相同或一致。

filter 可选

object。一个包含单个属性 url 的对象,该属性是一个 events.UrlFilter 对象的 Array

如果您包含此参数,则事件仅针对与数组中至少一个 UrlFilter 匹配的 URL 的转换触发。

如果您省略此参数,则事件将针对所有转换触发。

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

记录 onErrorOccurred 的目标 URL,如果目标 URL 的 hostname 包含 "example.com" 或以 "developer" 开头。

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