【发布时间】:2012-03-03 00:50:49
【问题描述】:
我想使用 Backbone 出色的路由系统,但我不想为旧版浏览器提供任何形式的哈希支持。在Backbone.History 中使用pushState 时是否可以完全禁用哈希?
【问题讨论】:
标签: javascript html backbone.js
我想使用 Backbone 出色的路由系统,但我不想为旧版浏览器提供任何形式的哈希支持。在Backbone.History 中使用pushState 时是否可以完全禁用哈希?
【问题讨论】:
标签: javascript html backbone.js
backbone.js 页面上没有记录,但我在带注释的源代码中找到了它。如果你将hashChange false 传递给Backbone.history.start(),骨干网将不会使用哈希回退。
EG:
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');
}
【讨论】: