关于 window.onhashchange 和 window.addEventListener('hashchange'
来源:4-21 如何用JS实现hash路由

一爿
2020-10-21
经过测试发现(我是MacOS环境)
在谷歌浏览器中,以下两种写法都有效,但是在火狐浏览器中必须得用后者的写法
// 谷歌有效,火狐无效
window.onhashchange = (event) => {
console.log(`old url:${event.oldURL}`)
console.log(`new url:${event.newURL}`)
console.log(`hash:${location.hash}`)
}
// 谷歌、火狐浏览器都有效
window.addEventListener('hashchange', (event) => {
console.log(`old url:${event.oldURL}`)
console.log(`new url:${event.newURL}`)
console.log(`hash:${location.hash}`)
})
写回答
1回答
-
感谢反馈。火狐确实有一些兼容性问题。
不过,好在我们是做 hash 路由的一个原理学习,并不是真正开发一个 router 库,所以兼容性不用考虑那么全面。
10
相似问题