完全禁用Backbone.js哈希,但将pushState保留在历史记录中

Disable Backbone.js hashes entirely, but keep pushState in History?

本文关键字:保留 pushState 历史 记录 但将 Backbone 哈希 js      更新时间:2023-09-26

我想使用Backbone出色的路由系统,但我不想为旧浏览器提供任何形式的哈希支持。在Backbone.History中使用pushState时,是否可以完全禁用哈希?

backbone.js页面上没有记录它,但我在带注释的源代码中找到了它。如果将hashChange false传递给Backbone.history.start(),主干网将不会使用哈希回退。

例如:

Backbone.history.start({hashChange:false, pushState:true})

有很多充分的理由支持pushState,而不是重新使用哈希,同时仍然支持旧的浏览器(浏览器将转到新的url并重新加载,而不是使用ajax更新)。

没有内置的支持,如果你的应用程序不能在旧浏览器中工作很重要,你可能会修改你的Backbone版本。您可以在DomReady功能的开头添加以下内容:

if (window.history && window.history.pushState) {
     // main script
} else {
     alert("Your browser doesn't support push state and I don't want backwards compatibility");
     window.location('http://away.from.here');
}