移除哈希时是否触发hashchange事件



我使用了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,以便允许从一个页面移动到另一个页面而无需刷新浏览器。

相关内容

  • 没有找到相关文章

最新更新