语法
js
browser.webNavigation.onCompleted.addListener(
  listener,                   // function
  filter                      // optional object
)
browser.webNavigation.onCompleted.removeListener(listener)
browser.webNavigation.onCompleted.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。页面加载完成的时间,以 纪元以来的毫秒数 为单位。
示例
记录 onCompleted 的目标 URL,如果目标 URL 的主机名包含 "example.com" 或以 "developer" 开头。
js
const filter = {
  url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnCompleted(details) {
  console.log(`onCompleted: ${details.url}`);
}
browser.webNavigation.onCompleted.addListener(logOnCompleted, filter);
扩展程序示例
浏览器兼容性
加载中…
注意:此API基于Chromium的chrome.webNavigation API。本文档源自Chromium代码中的web_navigation.json。