锚链接

时间:2012-07-26 15:26:18

标签: backbone.js backbone-routing

假设:

  • Tom - 拥有一个支持pushState的现代浏览器
  • Fred - 拥有一个不支持pushState的浏览器
  • 由Backbone提供支持的super.app网络应用程序

汤姆浏览products/1部分所在的#special-offer页面。

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

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

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

2 个答案:

答案 0 :(得分: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.html,例如:不#special-offer

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

if (!Backbone.history._hasPushState) {
  $('body').delegate('a[href^=#]', 'click', function (e) {
    e.preventDefault();
  });
}

答案 1 :(得分:0)

Backbone在其模块RouterHistory中可以非常自定义地使用哈希网址片段