此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Navigation:currententrychange 事件
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used 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> |
浏览器兼容性
Loading...
参见
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的导航 API 在线演示