我同时使用了jquery hashchange和window.addEventListener(“hashchange”),但是当代码删除散列部分时,事件没有触发。我正在使用mithril.js来改变哈希:
m.route('')
window.addEventListener("hashchange", function(evt) {
console.log("hash change");
var path = location.hash.substring(1);
console.log(path);
//do other things
}, false);
当删除网址的哈希部分时,事件是否会触发?如果没有处理这种情况的解决方法是什么?
答案 0 :(得分:0)
如果使用history.pushState()
删除哈希值,则不会触发。
此外,请注意,大多数
m.route
模式都依赖于history.pushState
,以便在不刷新浏览器的情况下允许从一个页面移动到另一个页面。