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

时间:2012-07-16 20:37:26

标签: javascript html browser browser-history

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

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

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

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

-exemple -

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

3 个答案:

答案 0 :(得分:1)

我很确定你所描述的行为最好被归类为被认为是用户偏好的事物之一。 (其中一件你不打算篡改的事情)

@mrtsherman想出了一个hack/workaround for this,但除非它严重破坏了你的webapp的可用性,否则我认为你应该让浏览器按照用户通常期望的行为行事(并滚动到他们所处的位置)当他们离开页面时)。如果你使用它,请务必为msherman提供js的甜蜜金块。

答案 1 :(得分: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"仅在用户选择在新窗口/选项卡中打开

时加载

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

答案 2 :(得分:-4)

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

在每个页面上放置以下代码:

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