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 语法
参数
监听器-
当此事件发生时调用的函数。该函数将传递此参数
filter可选-
object。一个包含单个属性url的对象,该属性是一个Array,其中包含events.UrlFilter对象。如果您包含此参数,则仅在导航到至少一个与数组中的UrlFilter匹配的URL时才会触发该事件。如果省略此参数,则在所有导航时都会触发该事件。
额外对象
details
documentId-
string。已加载文档的UUID。 parentDocumentId-
string。拥有该框架的父文档的UUID。如果没有父级,则不设置。 documentLifecycle-
string。文档所处的生命周期。返回值包括"prerender"、"active"、"cached"和"pending_deletion"。 tabId-
integer。导航即将发生的选项卡ID。 url-
string。给定框架将导航到的URL。 processId可选 已弃用-
integer。此值在现代浏览器中未设置。当设置时,它代表运行此选项卡渲染器的进程ID。 frameId-
integer。导航将发生的框架。0表示导航发生在选项卡的主浏览上下文,而不是嵌套的<iframe>中。正值表示导航发生在嵌套的iframe中。对于给定的选项卡和进程,框架ID是唯一的。 parentFrameId-
integer。此框架父级的ID。如果这是顶层框架,则设置为-1。 frameType-
string。导航发生的框架类型。返回值包括"outermost_frame"、"fenced_frame"和"sub_frame"。 timeStamp-
number。导航提交的时间,以纪元以来的毫秒数表示。 transitionType-
transitionType。导航的原因。(例如,如果用户点击了链接,则为"link";如果用户重新加载了页面,则为"reload"。) transitionQualifiers-
ArrayoftransitionQualifier。有关导航的附加信息:例如,是否存在服务器端或客户端重定向。
示例
记录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。