webNavigation.onCommitted
当导航提交时触发。至少部分新文档已从服务器接收,并且浏览器已决定切换到新文档。
语法
browser.webNavigation.onCommitted.addListener(
listener, // function
filter // optional object
)
browser.webNavigation.onCommitted.removeListener(listener)
browser.webNavigation.onCommitted.hasListener(listener)
事件具有三个函数
addListener(listener)
-
向此事件添加监听器。
removeListener(listener)
-
停止监听此事件。
listener
参数是要删除的监听器。 hasListener(listener)
-
检查
listener
是否已为此事件注册。如果正在监听,则返回true
,否则返回false
。
addListener 语法
参数
listener
-
此事件发生时调用的函数。该函数将传递此参数
filter
可选-
object
。包含单个属性url
的对象,该属性是一个包含events.UrlFilter
对象的Array
。如果您包含此参数,则该事件仅针对与数组中至少一个UrlFilter
匹配的 URL 的转换触发。如果您省略此参数,则该事件会针对所有转换触发。
其他对象
details
tabId
-
integer
。即将发生导航的标签的 ID。 url
-
string
。给定框架将导航到的 URL。 processId
可选 已弃用-
integer
。此值在现代浏览器中未设置。当它被设置时,它表示运行此标签渲染器的进程的 ID。 frameId
-
integer
。将发生导航的框架。0
表示导航发生在标签的顶级浏览上下文,而不是在嵌套的<iframe>
中。正值表示导航发生在嵌套的 iframe 中。框架 ID 对给定的标签和进程是唯一的。 parentFrameId
-
integer
。此框架的父级的 ID。如果这是顶级框架,则设置为-1
。 timeStamp
-
number
。导航提交的时间,以 自纪元以来的毫秒数 为单位。 transitionType
-
transitionType
。导航的原因。(例如,如果用户单击链接,则为"link"
,如果用户重新加载页面,则为"reload"
。) transitionQualifiers
-
Array
oftransitionQualifier
。有关导航的额外信息:例如,是否存在服务器或客户端重定向。
浏览器兼容性
BCD 表格仅在浏览器中加载
示例
记录 onCommitted
的目标 URL 和额外转换信息,如果目标 URL 的主机名包含 "example.com" 或以 "developer" 开头。
const filter = {
url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnCommitted(details) {
console.log(`target URL: ${details.url}`);
console.log(`transition type: ${details.transitionType}`);
console.log(`transition qualifiers: ${details.transitionQualifiers}`);
}
browser.webNavigation.onCommitted.addListener(logOnCommitted, filter);
示例扩展
注意:此 API 基于 Chromium 的 chrome.webNavigation
API。此文档来自 Chromium 代码中的 web_navigation.json
。