我想使用Backbone的奇妙路由系统,但我不想对旧浏览器提供任何形式的哈希支持。在pushState
中使用Backbone.History
时,是否可以完全禁用哈希?
答案 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');
}