Navigation:currententrychange 事件
Baseline
2026
Newly available
Since January 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Navigation 接口的 currententrychange 事件在 Navigation.currentEntry 发生更改时触发。
此事件将会在如下情况发生时触发:
-
同文档导航(例如
back()或traverseTo())。 -
替换(即
navigate()调用,并将history参数设置为replace)。 -
更改条目状态的其他调用(例如
updateCurrentEntry(),或 History API 的History.replaceState())。
此事件在导航提交后触发,这意味着可见 URL 已更改且 NavigationHistoryEntry 已更新。它对于从使用较旧的 API 功能(如 hashchange 事件或 popstate 事件)进行迁移非常有用。
语法
在类似 addEventListener() 这样的方法中使用事件名称,或者设置事件处理器属性。
js
addEventListener("currententrychange", (event) => {});
oncurrententrychange = (event) => {};
事件类型
示例
导航数据上报:
js
navigation.addEventListener("currententrychange", () => {
const data = navigation.currentEntry.getState();
submitAnalyticsData(data.analytics);
});
设置每个条目事件:
js
navigation.addEventListener("currententrychange", () => {
navigation.currentEntry.addEventListener("dispose", genericDisposeHandler);
});
规范
| Specification |
|---|
| HTML> # event-currententrychange> |
浏览器兼容性
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示