Window:hashchange 事件
当 URL 的片段标识符(URL 中以 # 符号开头的部分)发生变化时,会触发 hashchange 事件。
使用 history.pushState() 或 history.replaceState() 修改哈希值时,不会触发此事件。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("hashchange", (event) => { })
onhashchange = (event) => { }
事件类型
一个 HashChangeEvent。继承自 Event。
事件属性
HashChangeEvent.newURL只读-
一个字符串,表示窗口正在导航到的新 URL。
HashChangeEvent.oldURL只读-
一个字符串,表示窗口从中导航到的前一个 URL。
事件处理程序别名
除了 Window 接口之外,以下目标也可用事件处理属性 onhashchange:
示例
您可以在 addEventListener 方法中使用 hashchange 事件
js
window.addEventListener("hashchange", () => {
console.log("The hash has changed!");
});
或者使用 onhashchange 事件处理属性
js
function locationHashChanged() {
if (location.hash === "#cool-feature") {
console.log("You're visiting a cool feature!");
}
}
window.onhashchange = locationHashChanged;
规范
| 规范 |
|---|
| HTML # event-hashchange |
| HTML # handler-window-onhashchange |
浏览器兼容性
加载中…
另见
popstate事件