webNavigation.onReferenceFragmentUpdated
如果页面的片段标识符发生更改,则触发此事件。例如,如果页面使用片段实现目录,并且用户单击目录中的条目,则会触发此事件。此框架的未来所有事件都将使用更新的 URL。
语法
browser.webNavigation.onReferenceFragmentUpdated.addListener(
listener, // function
filter // optional object
)
browser.webNavigation.onReferenceFragmentUpdated.removeListener(listener)
browser.webNavigation.onReferenceFragmentUpdated.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
。页面片段标识符更改的时间,以自纪元以来的毫秒数 为单位。 transitionType
-
。导航的原因:例如,如果用户单击链接,则为transitionType
"link"
。 transitionQualifiers
-
Array
oftransitionQualifier
。有关导航的其他信息:例如,是否存在服务器或客户端重定向。
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
示例
记录 onReferenceFragmentUpdated
的目标 URL 和额外转换信息,如果目标 URL 的主机名包含“example.com”或以“developer”开头。
const filter = {
url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};
function logOnReferenceFragmentUpdated(details) {
console.log(`onReferenceFragmentUpdated: ${details.url}`);
console.log(`Transition type: ${details.transitionType}`);
console.log(`Transition qualifiers: ${details.transitionQualifiers}`);
}
browser.webNavigation.onReferenceFragmentUpdated.addListener(
logOnReferenceFragmentUpdated,
filter,
);
注意:此 API 基于 Chromium 的chrome.webNavigation
API。此文档来自 Chromium 代码中的web_navigation.json
。