如何让浏览器在页面重新加载时滚动到#anchor?

时间:2015-09-07 22:08:13

标签: browser anchor user-experience

这是我正在解决的一个有趣的浏览器UX问题。

假设您在浏览器中点击锚链接并转移到www.example.com/#footer。然后单击键盘上的“主页”按钮,浏览器将向上滚动到站点顶部。如果您现在通过F5重新加载页面,则网址中仍会显示#footerwww.example.com/#footer),但浏览器不会向下滚动到#footer - 该页面将会保持滚动到顶部。

我的问题是 - 当没有JavaScript重新加载页面时,有没有办法让浏览器滚动到#footer

这是解释问题的HTML:

<html>
  <body>
    <div style="height: 2000px">
      <a href="#footer">click here to go to footer</a>
    </div>
    <div style="height: 300px" id="footer">
      footer div (now scroll up and hit F5)
    </div>
  </body>
</html>

在浏览器中加载此页面,然后单击页脚链接。然后滚动到顶部,然后重新加载页面。即使网页中有#footer,您的浏览器也不会再将页面滚动到页脚。

如果您只是向上滚动一点并点击重新加载,就会发生类似的效果。当页面重新加载时,它将保留在您离开的位置而不是返回锚点。

我可以通过使用JavaScript在onload中添加scrollong来解决它,但我想知道是否有一个纯粹的浏览器解决方案?在重新加载页面并使浏览器滚动到URL中之前,如何让浏览器忘记页面所处的位置?

0 个答案:

没有答案