情景:
打开新网页,随机提供哈希值。
var urlNoHash = location.href;
history.replaceState(null, null, urlNoHash + "#" + Math.random() );
window.addEventListener("hashchange", myFunction());
function myFunction() {
alert("hashchange");
}
在添加新哈希时会触发hashchange,但在使用浏览器"后退按钮"
后导航时则不会。答案 0 :(得分:0)
我认为这是一个浏览器实现错误,但是一旦您使用replaceState
修改了历史记录,后退按钮只会触发popstate
event,而不会触发hashchange
事件。
好消息是changing location.hash
also triggers popstate
event,因此您不必收听这两个事件。