0

使用 Backbone 路由时,有什么方法可以阻止#出现在地址栏中,pushState 与否?

4

2 回答 2

0

@Kay,您的 Babckbone 应用程序应该在所有主流浏览器中都能正常工作,并且 IE8-9 仍然被广泛使用(是的,不幸的是,甚至 IE6-7)。使用哈希和 nopushState更可靠,许多大型应用程序都使用它们(例如 Facebook)。问题是,如果您在链接中使用硬编码的路由,并且它们不是散列,那么如果 pushState 在浏览器中不起作用,您就会被搞砸。因此,您要么必须使用 pushState 并在应该由路由器拾取的链接中使用普通路径名,要么不要使用 pushState 并使用散列。后者更优选IMO。

于 2012-10-23T06:37:02.217 回答
0

当前版本的 IE 不支持pushState. (它出现在 IE10 预览中)。

您的选择是下拉到普通(非 Ajax)链接/表单提交/等,或者使用 hashbang hack。

我对骨干网的了解还不足以肯定地说,但以下内容可能足以回退到正常路由:

if (window.history && window.history.pushState) {
    Backbone.history.start({pushState: true});
}
于 2012-10-23T06:40:37.460 回答