7

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

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

按下该按钮后,浏览器将返回到此页面上的先前滚动位置,我想停止该行为并仅加载页面顶部。

希望有人知道正确的解决方案。

-示例-

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

4

3 回答 3

1

我相当确定您所描述的行为最好归类为被认为是用户偏好的行为之一。(你不想篡改的那些东西之一)

@mrtsherman 为此提出了一个hack/解决方法,但除非它严重破坏了您的 web 应用程序的可用性,否则我认为您应该让浏览器按照用户通常期望的方式运行(并滚动到他们离开时所处的位置这页纸)。如果您使用它,请务必为 mrtsherman 的 js 甜心点赞。

于 2012-07-16T21:18:52.490 回答
0

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

只需在加载下一页之前滚动到顶部。
当用户单击返回时,浏览器将滚动到顶部。

例子:

第一页:
<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"仅当用户选择在新窗口/标签中打开时才加载

原谅我的英语。我希望这有帮助。

于 2013-01-23T11:31:49.980 回答
-4

我找到了更好的解决方案!

将以下代码放在每一页上:

<script>
  setTimeout('window.scrollTo(0, 0);', 1);
</script>
于 2013-01-24T15:32:28.173 回答