单击浏览器后退按钮时如何警告用户

chr*_*mbo 0 javascript safari jquery google-chrome cross-browser

我想在用户单击浏览器“后退按钮”时警告用户,然后在确认后重定向。下面是我的 JS 代码,但仅适用于 Firefox,我想让它也适用于 chrome 和其他浏览器。

注意:为了在 chrome 中触发事件,我需要先点击页面正文,然后点击浏览器的“后退”按钮(这不好)。

请协助。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Page2</title>
</head>
<body>
  <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
        crossorigin="anonymous"></script>
  <script>
    $(function(){
      window.history.pushState({page: 1}, "", "");
      window.onpopstate = function(event) {
        if(event){
          var confirm = window.confirm("Please, note that you may lose your move details by returning to the previous page.");
        }
      }
    });
  </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

rv7*_*rv7 7

我找到了一个有用的链接,它解释了 Chrome 和其他浏览器的这种行为。

“Chrome 计划让你远离那些乱七八糟的后退按钮的网站”

上面帖子中提到的一些令人讨厌的网站使用了这种行为,对他们有利。因此,像 Chrome 这样的浏览器似乎有意通过“后退按钮”来防止这种偷偷摸摸的黑客行为(显然是出于安全原因和流畅的用户体验)。此外,我怀疑是否有人发现了一个漂亮的黑客,那么 Chrome 开发人员将再次改进他们的安全检查,如帖子中所述。

不管怎么说,我们仍然有火狐和我们一起。祝你好运 ;)

  • 伟大的!拉胡尔,我认为了解这一点对我来说非常重要。 (2认同)