webNavigation.onErrorOccurred
当发生错误并且导航被中止时触发此事件。这可能是网络错误或用户中止导航导致的。
语法
browser.webNavigation.onErrorOccurred.addListener(
listener, // 函数
filter // 可选对象
)
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)。如果包含此参数,则仅当目标 URL 匹配数组中至少一个
UrlFilter时,事件才会触发。如果省略此参数,则事件会为所有导航触发。
浏览器兼容性
Loading…
示例
当目标 URL 的 hostname 包含“example.com”或以“developer”开头时,记录 onErrorOccurred 的目标 URL。
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。