【问题标题】:Jump to name=key-1 when URL contains #key-1当 URL 包含 #key-1 时跳转到 name=key-1
【发布时间】:2015-12-01 12:45:17
【问题描述】:

只要我的 URL 包含 #,我希望跳转到选定的哈希。

# 是动态创建并插入到header($location); 中的。之后新的 URL 像这样加载:www.example.com?p=1#key-1,但是它不会转到页面上选定的#。 我该怎么做?

我查看了 javascript window.location.hash,但不知道如何正确使用它。

更新: 当我在地址栏中手动输入#sek-31 时,url 中的 # 起作用。但是,当我重新加载相同的 URL 时,我会回到页面顶部。

更新二:

更新三:

它在以下浏览器中工作:

  • Windows 版 Safari
  • 火狐
  • 边缘

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/3163615/…
  • 如何准确插入哈希?您确定在插入哈希时有 ID 为 key-1 的元素吗?
  • @A.沃尔夫,我就是这样做的。 $location = "Location: planner_show.php?"; $location .= "m=" . $msgId . "&p=" . $save_plan_id; header($location); die;

标签: javascript php jquery google-chrome page-jump


【解决方案1】:

如果您转到www.example.com?p=1#key-1,浏览器将自动滚动到带有id key-1 的元素。所以,只需添加一个id 属性。

https://developer.mozilla.org/en/docs/Web/HTML/Element/a#attr-href

(这个网址已经是demo了。它以#attr-href结尾,点击后会直接跳转到#attr-href部分)

http://output.jsbin.com/bajiqu#res 注意,我将#res 放在网址中,这样浏览器将滚动到#res 段落。

【讨论】:

  • 不起作用...我有地址:example.com/planner_show.php?p=1#sek-34,还有一个 id=sek-34 的 div
  • 您是否添加了id 属性?您是否尝试转到Mozila 页面?如果是这样,您是否注意到您不在页面顶部,而是直接滚动到attr-href 部分?您有网站的公开网址吗?
  • 我的 div 上有 ID。这个 ID 是sek-34。但是,我注意到,我的页面上的反应不同。该页面是一个封闭的页面。是否有任何其他功能可以强制 #top?
  • 也许您的站点中有一个“阻止”滚动的脚本。在看到您的网站之前,我无法确定。尝试创建一个显示此问题的小提琴。我在我的答案中添加了一个小提琴,所以你可以检查一下。
  • 如果您尝试直接在浏览器中获取www.example.com?p=1#key-1 URL(而不是通过服务器redirectopn)。有用吗?
猜你喜欢
  • 1970-01-01
  • 2015-12-02
  • 2018-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多