webNavigation.onCompleted

当文档(包括它所指向的资源)已经加载完并且已初始化时触发。该事件与 window 的 load 事件等价。

语法

js
browser.webNavigation.onCompleted.addListener(
  listener,                   // 函数
  filter                      // 可选对象
)
browser.webNavigation.onCompleted.removeListener(listener)
browser.webNavigation.onCompleted.hasListener(listener)

事件包含三个函数:

addListener(listener)

为此事件添加监听器。

removeListener(listener)

停止监听此事件。listener 参数是要移除的监听器。

hasListener(listener)

检查是否已为此事件注册了 listener。如果正在监听,则返回 true,否则返回 false

addListener 语法

参数

listener

事件触发时调用的函数。该函数接收以下参数:

details

object。有关导航事件的详细信息。参见 details 部分以了解更多信息。

filter 可选

object。包含单个 url 属性的对象,且这一属性是 events.UrlFilter 对象的数组(Array)。如果包含此参数,则仅当目标 URL 匹配数组中至少一个 UrlFilter 时,事件才会触发。如果省略此参数,则事件会为所有导航触发。

附加对象

details

tabId

integer。已经发生导航的标签页的 ID。

url

string。指定的框架将要导航到的 URL。

processId 可选 已弃用

integer。在现代浏览器中未设置该值。当设置时,它表示运行此标签页的渲染器的进程 ID。

frameId

integer。即将发生导航的框架。0 表示导航发生在标签页的顶级浏览上下文中,而不是嵌套的 <iframe> 中。正值表示导航发生在嵌套的 iframe 中。框架 ID 对于给定的标签页和进程是唯一的。

timeStamp

number。页面加载完成的时间,以自纪元以来的毫秒数表示。

浏览器兼容性

示例

当目标 URL 的主机名包含“example.com”或以“developer”开头时,记录 onComplete 的目标 URL。

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