webNavigation.onReferenceFragmentUpdated

如果页面的片段标识符发生更改,则触发此事件。例如,如果页面使用片段实现目录,并且用户单击目录中的条目,则会触发此事件。此框架的未来所有事件都将使用更新的 URL。

语法

js
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

当此事件发生时调用的函数。此函数将传递此参数

details

object。有关导航事件的详细信息。有关更多信息,请参阅details 部分。

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 of transitionQualifier。有关导航的其他信息:例如,是否存在服务器或客户端重定向。

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

示例

记录 onReferenceFragmentUpdated 的目标 URL 和额外转换信息,如果目标 URL 的主机名包含“example.com”或以“developer”开头。

js
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