这是我正在解决的一个有趣的浏览器UX问题。
假设您在浏览器中点击锚链接并转移到www.example.com/#footer
。然后单击键盘上的“主页”按钮,浏览器将向上滚动到站点顶部。如果您现在通过F5
重新加载页面,则网址中仍会显示#footer
(www.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中之前,如何让浏览器忘记页面所处的位置?