链接中的锚点
Posted
技术标签:
【中文标题】链接中的锚点【英文标题】:Anchors in links 【发布时间】:2012-07-25 05:45:12 【问题描述】:给定:
Tom — 拥有支持 pushState 的现代浏览器 Fred — 浏览器不支持 pushState 由 Backbone 提供支持的super.app
Web 应用程序
Tom 浏览到存在#special-offer
部分的products/1
页面。
Backbone 是否允许 Tom 与 Fred 共享链接,包括指向特价部分的锚点:http://super.app/products/1#special-offer
Fred 会被重定向到http://super.app/#products/1(例如:没有#special-offer
)吗?
换句话说,Backbone 是否允许使用锚点?
【问题讨论】:
【参考方案1】:我在这里进行了测试http://bl.ocks.org/abernier/raw/3183257/
看来是:
锚点可用于支持 pushState 的浏览器:http://bl.ocks.org/abernier/raw/3183257/product1.html#special-offer
对于 IEhttp://bl.ocks.org/abernier/raw/3183257/#product1.html 例如:没有#special-offer
我唯一需要注意的是禁用基于哈希的历史浏览器的锚点,方法是:
if (!Backbone.history._hasPushState)
$('body').delegate('a[href^=#]', 'click', function (e)
e.preventDefault();
);
【讨论】:
【参考方案2】:Backbone 在其模块Router 和History 中有一个非常可定制的hash URL 片段。
【讨论】:
有趣的是您的链接中有锚点 :) 但不幸的是,您在此处引用的 Backbone 的文档不涉及锚点。所以它让我的问题没有答案...... 我一直在旧的 Backbone 项目中使用 基于哈希的 URL 片段,所以我认为它支持它,也许我理解错误你的 URL 锚 i> 描述,但我想我没有。我的链接中的文档几乎隐藏了有关 基于哈希的 URL 片段 的 cmets,因为它增加了使用 HTML5 history API 的重要性,但您可以阅读 “直到最近,哈希片段(#page) 用于提供这些永久链接..." 和 "...路由器处理优雅的回退和对 URL 片段版本的透明转换"以上是关于链接中的锚点的主要内容,如果未能解决你的问题,请参考以下文章
ARFrame 锚点中不存在 AREnvironmentProbeAnchor
JavaFX WebView:使用loadContent()链接到文档中的锚点不起作用