阻止浏览器在按下后退按钮时捕捉到上一个滚动位置

Prevent browser from snapping to previous scroll position when pushing back button

本文关键字:上一个 位置 滚动 按钮 浏览器      更新时间:2023-09-26

当用户按下这样的后退按钮时,我需要防止浏览器捕捉到上一个滚动位置:

<a href="javascript:history.go(-1)"
      onClick="javascript:history.go(-1)" title="< GO BACK"></a>

按下该按钮后,浏览器将返回到此页面上的上一个滚动位置我想停止这种行为,只加载页面的顶部。

希望有人知道合适的解决方案。

-示例-

打开一个页面向下滚动到一个新页面,然后点击后退按钮,页面将自动向下滚动到您之前滚动的位置!

我很确定您所描述的行为最好被归类为用户偏好。

@mrtsherman为此想出了一个破解/解决方法,但除非它严重破坏了你的网络应用程序的可用性,否则我认为你应该让浏览器按照用户通常期望的方式运行(并滚动到他们离开页面时的位置)。如果你使用js,一定要投票给mrtsherman。

我有同样的问题,但我还没有找到正确的解决方案,
但我可以给你一个解决这个问题的好办法。

只需滚动到顶部,然后加载下一页
当用户单击后退时,浏览器将滚动到顶部。

示例:

首页:
<a href="page2.htm" onclick="window.scrollTo(0, 0);">Next</a>

第二页:
<a href="page1.htm" onclick="history.go(-1); return false;">Back</a>

注意,只有当用户选择在新窗口/选项卡中打开时,才会加载href="page1.htm"

对不起我的英语。我希望这能有所帮助。

我找到了更好的解决方案

将以下代码放在每页上:

<script>
  setTimeout('window.scrollTo(0, 0);', 1);
</script>