链接中的锚点

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()链接到文档中的锚点不起作用

带有 id 链接的锚点的技术术语是啥?

渲染组件后,Vue.js将单击事件绑定到v-html中的锚元素[重复]

HTML中的锚点以及锚点的设置与应用