javascript - 浏览器后退按钮单击使用javascript双击

标签 javascript

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

最佳答案

简答:

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 个页面)。

为了检测浏览器中的后退按钮何时被按下,我进行了快速搜索并找到了 this question here 的解决方案。关于“如何检测浏览器后退按钮事件 - 跨浏览器”。接受的答案有一个非常完整和详细的方法,我用它来获得上面的片段,你一定要阅读。

上面代码片段的作用的简要概述是,它使用 2 个事件来检测用户的鼠标是否在页面文档内。如果它不在页面文档中,则意味着用户不会单击任何页面内元素,例如超链接等,这也可能会更改 URL。 'onhashchange' 事件检测位置哈希何时更改,然后检查用户的鼠标是否在文档内,如果不在则执行双后退按钮。

请注意:此方法不包括用户按下退格键(或任何其他热键)的情况。接受的答案确实涵盖了使用 jQuery 执行此操作的方法,如果不需要 jQuery,它看起来好像可以修改为在 vanilla JavaScript 中工作。 此方法也可能不适用于 iPad 或其他平板电脑和移动设备等设备,因为它们没有鼠标事件。此外,很可能不会涵盖 Mac 触控板上的滑动事件。没有这些设备,我不可能测试它们。

关于javascript - 浏览器后退按钮单击使用javascript双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35943896/

相关文章:

javascript - 段落标记中设置的最大限制,内容可编辑为 true

javascript - jquery `this` 中的特定元素

javascript - 在 Javascript 中用空格拆分数组行

javascript - 如何使用带按钮的 Notify.js?

javascript - 我的 Vuex 表单获得第一个字段,但没有第二个字段,默默地失败

javascript - 单击 iframe 中的链接根本没有效果

javascript - 需要 PayPal Express : is checkout. js?

javascript - AWS lambda 是否存储全局变量?

javascript - insertAfter 为多个 div

javascript - 获取子元素的所有 id