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

时间:2012-03-03 00:50:50

标签: javascript html5 backbone.js

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

2 个答案:

答案 0 :(得分:7)

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

EG:

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

有很多很好的理由支持pushState,而不是回归使用哈希,而仍然支持旧版浏览器(浏览器将转到新网址并重新加载而不是使用ajax进行更新)。

答案 1 :(得分:2)

没有内置支持,如果您的应用程序在旧浏览器中不起作用很重要,您可能会修改您的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');
}