webNavigation.onHistoryStateUpdated
当页面使用>历史 API更新浏览器地址栏中显示的 URL 时触发。此框架的所有未来事件都将使用更新后的 URL。
语法
browser.webNavigation.onHistoryStateUpdated.addListener(
listener, // function
filter // optional object
)
browser.webNavigation.onHistoryStateUpdated.removeListener(listener)
browser.webNavigation.onHistoryStateUpdated.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 对给定的选项卡和进程是唯一的。 timeStamp
-
number
。通过历史 API 更改 URL 的时间,以自纪元以来的毫秒数表示。 transitionType
-
。导航的原因:例如,如果用户单击链接,则为transitionType
"link"
。 transitionQualifiers
-
Array
oftransitionQualifier
。有关导航的其他信息:例如,是否存在服务器或客户端重定向。
浏览器兼容性
BCD 表仅在浏览器中加载
示例
如果目标 URL 的主机名包含“example.com”或以“developer”开头,则记录onHistoryStateUpdated
的目标 URL 和额外的转换信息。
const filter = {
url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnHistoryStateUpdated(details) {
console.log(`onHistoryStateUpdated: ${details.url}`);
console.log(`Transition type: ${details.transitionType}`);
console.log(`Transition qualifiers: ${details.transitionQualifiers}`);
}
browser.webNavigation.onHistoryStateUpdated.addListener(
logOnHistoryStateUpdated,
filter,
);
注意:此 API 基于 Chromium 的chrome.webNavigation
API。此文档源自 Chromium 代码中的web_navigation.json
。