我使用了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);
当url的哈希部分被删除时,事件是否会触发?如果不是,处理这种情况的变通方法是什么?
如果使用history.pushState()
删除散列,则不会触发
根据mithril.js文档:
此外,请注意,大多数
m.route
模式依赖于history.pushState
,以便允许从一个页面移动到另一个页面而无需刷新浏览器。