此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

NavigationCurrentEntryChangeEvent

基线 2026
最近可用

自 2026年1月 起,此特性已在最新浏览器中得到支持。但在较旧的设备或浏览器中可能无法运行。

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格。

导航 API 的 NavigationCurrentEntryChangeEvent 接口是 currententrychange 事件的事件对象,该事件在 Navigation.currentEntry 发生更改时触发。

此事件将在以下情况下触发:同一文档导航(例如 back() 或 traverseTo())、替换(即 navigate() 调用,其中 history 设置为 replace),或其他更改条目状态的调用(例如 updateCurrentEntry(),或历史记录 API 的 History.replaceState())。

此事件在导航提交后触发,这意味着可见 URL 已更改,并且已发生 NavigationHistoryEntry 更新。它对于从使用较旧的 API 特性(如 hashchange 或 popstate 事件)迁移非常有用。

Event NavigationCurrentEntryChangeEvent

构造函数

创建一个新的 NavigationCurrentEntryChangeEvent 对象实例。

实例属性

从其父级 Event 继承属性。

from 只读

返回导航来源的 NavigationHistoryEntry。

返回导致改变的导航的类型。

示例

导航数据上报:

js
navigation.addEventListener("currententrychange", () => {
  const data = navigation.currentEntry.getState();
  submitAnalyticsData(data.analytics);
});

设置每个条目事件:

js
navigation.addEventListener("currententrychange", () => {
  navigation.currentEntry.addEventListener("dispose", genericDisposeHandler);
});

规范

规范
HTML
# the-navigationcurrententrychangeevent-interface

浏览器兼容性

参见