使用JavaScript将浏览器后退按钮的单击变为双击

6

我在每个页面上使用 id 来滚动页面到固定速率,每当用户在我的网站上重定向到另一个页面时。 我的问题是,用户需要双击浏览器的返回按钮才能将页面重定向到上一页,因此每当用户单击浏览器的返回按钮时,我需要设置为双击浏览器的返回按钮。
谢谢

1个回答

2

简短回答:

document.onmouseover = function() {
  //User's mouse is inside the page.
  window.innerDocClick = true;
}

document.onmouseleave = function() {
  //User's mouse has left the page.
  window.innerDocClick = false;
}

window.onhashchange = function() {
  if (!window.innerDocClick) {
    //Browser back button was clicked
    window.history.go(-2);
  }
}

解释: window.history对象包含用户在浏览器中访问的URL。 window.history.go(x) 函数用于使浏览器转到历史记录中的相对页面(因此在这种情况下,-2表示返回2页)。
为了检测浏览器中的后退按钮被按下时,我进行了快速搜索,并在这里的问题中找到了“如何检测浏览器后退按钮事件 - 跨浏览器”的解决方案。 接受的答案提供了非常详细的方法,我用它来获取上面的片段,您应该确实阅读。
上面片段所做的快速概述是,它使用2个事件来检测用户的鼠标是否位于页面文档内部。如果不在页面文档中,则这意味着用户不会单击任何页面元素,例如超链接等。也可能更改URL。 'onhashchange'事件检测位置哈希何时更改,然后检查用户的鼠标是否位于文档中,如果不是,则执行双后退按钮。
请注意:此方法不包括用户按下退格键(或任何其他热键)。接受的答案确实涵盖了使用jQuery执行此操作的方法,看起来可以修改为在不需要jQuery的情况下使用vanilla JavaScript。此方法可能也不涵盖iPad或其他平板电脑和移动设备,因为它们没有鼠标事件。此外,mac笔记本电脑触摸板上的滑动事件很可能不会被覆盖。由于我没有这些设备,因此无法测试它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接