在使用Backbone routing,pushState时,有没有办法阻止#
出现在地址栏内?
答案 0 :(得分:0)
@Kay,您的Babckbone应用程序应该可以在所有主流浏览器中正常运行,IE8-9仍然被广泛使用(不幸的是,甚至是IE6-7)。使用哈希并且没有pushState
更可靠,许多大型应用程序使用它们(例如Facebook)。问题是,如果您在链接中使用硬编码路由,并且它们不是哈希值,那么如果pushState在浏览器中不起作用,则会被搞砸。因此,您必须使用pushState并在路由器中使用正常路径名,或者不要使用pushState并使用哈希值。后者更适合IMO。
答案 1 :(得分:0)
当前版本的IE不支持pushState
。 (它出现在IE10预览中)。
您的选择要么是下拉到正常(非Ajax)链接/表单提交/等,要么使用hashbang hack。
我不知道骨干是否足以确定,但以下可能足以回退到正常路由:
if (window.history && window.history.pushState) {
Backbone.history.start({pushState: true});
}