4

鉴于:

  • Tom — 拥有支持 pushState 的现代浏览器
  • Fred——他的浏览器不支持 pushState
  • super.app由 Backbone 提供支持的Web 应用程序

Tom 浏览到存在部分的products/1页面#special-offer

Backbone 是否允许 Tom 与 Fred 共享链接,包括特价部分的锚点: http: //super.app/products/1#special-offer

Fred 会被重定向到http://super.app/#products/1(例如:没有#special-offer)吗?

换句话说,Backbone 是否允许使用锚点?

4

2 回答 2

4

我在这里进行了测试http://bl.ocks.org/abernier/raw/3183257/

看来是:

  • 锚点可以与支持 pushState 的浏览器一起使用:http://bl.ocks.org/abernier/raw/3183257/product1.html#special-offer
  • 而对于 IE<10,它被转换为http://bl.ocks.org/abernier/raw/3183257/#product1.htmleg: without#special-offer

我唯一需要注意的是禁用基于哈希的历史浏览器的锚点,方法是:

if (!Backbone.history._hasPushState) {
  $('body').delegate('a[href^=#]', 'click', function (e) {
    e.preventDefault();
  });
}
于 2012-07-26T18:36:36.073 回答
0

Backbone 在其RouterHistory模块中对哈希 URL 片段的使用非常可定制。

于 2012-07-26T15:42:00.360 回答