鉴于:
- 汤姆 - 谁拥有现代化的浏览器是pushState的启用
- 弗雷德 - 谁拥有浏览器未启用pushState的,这
- 一个
super.app
搭载骨干网络应用程序
汤姆浏览到products/1
页,其中一个#special-offer
部分存在。
是否允许骨干汤姆与弗雷德共享一个链接包括锚的特殊优惠部分: http://super.app/products/1#special-offer
弗雷德会被重定向到http://super.app/#products/1 (如:无#special-offer
)?
换句话说,没有骨干允许使用锚?
我在这里度过的测试http://bl.ocks.org/abernier/raw/3183257/
看来,YES:
- 锚可以启用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();
});
}
骨干都有其模块中的一个非常定制使用哈希网址片段的路由器和历史 。