导航:currententrychange 事件
currententrychange
事件是 Navigation
接口的一个事件,当 Navigation.currentEntry
发生变化时触发。
此事件将在以下情况下触发
- 同文档导航(例如
back()
或traverseTo()
)。 - 替换(即,使用
history
设置为replace
的navigate()
调用)。 - 更改条目状态的其他调用(例如
updateCurrentEntry()
,或 历史记录 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);
});
规范
规范 |
---|
HTML 标准 # event-currententrychange |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的 导航 API 实时演示