繁体   English   中英

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

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

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

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

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

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

-例如-

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

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

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

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

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

例子:

第一页:
<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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM