防止浏览器后退按钮

时间:2015-06-10 00:04:45

标签: javascript html css

我一直试图找出一种方法,当用户点击转义按钮时,当用户点击浏览器后退按钮时,它只会重定向到它替换的网页。我发现代码运行得很好:

<?php 
    $date = "10.06.2015 09:25:52";
    echo Datetime::createFromFormat('d-m-Y h:i:s',  $date)->format('Y-m-d h:i:s');
?>
function getAway() {
  // Get away right now
  window.open("http://weather.com", "_newtab");

  // Replace current site with another benign site
  window.location.replace('http://google.com');

  //Prevents back button from going back to website 


}

$(function() {

  $("#get-away").on("click", function(e) {
    getAway();
  });

  $("#get-away a").on("click", function(e) {
    // allow the (?) link to work
    e.stopPropagation();
  });
});

function checkStorage() {

  var myVar = sessionStorage.getItem("myVar");
  if (myVar != undefined) {
    window.history.forward();
  }
}

function check() {
  sessionStorage.setItem("myVar", "true");
}

这就是我正在做的事情,我添加了html代码和转义按钮代码以及你向我展示的代码

2 个答案:

答案 0 :(得分:1)

如果在按下“退出”按钮后,您希望用户重定向到其他某个页面并且不希望他/她返回,即使他们在浏览器中按“返回”,那么您可以执行此操作。 / p>

在body标签中包含onload事件,

<body onload="checkStorage()">
    <!--You body content-->
</body>

现在使用以下脚本

    <script type="text/javascript">
            function checkStorage() {

                var myVar = sessionStorage.getItem("myVar");
                if (myVar != undefined) {
                    window.history.forward();
                }

            }

            function check() {
                sessionStorage.setItem("myVar", "true");

                //the URL you want the user to get redirected to when
                //they press "Escape" button
                window.location.replace("http://www.saumilsoni.me");
            }
        </script>

UPDATE:如果您已经在onload上调用了某个函数,则可以使用回调函数的概念,因为在onload中定义多个函数可能会在某些浏览器中出现问题。这是你可以做的,

<body onload="checkStorage()">
    <!--You body content-->
</body>

<script>
    function checkStorage(){

        var myVar = sessionStorage.getItem("myVar");
        if (myVar != undefined) {
            window.history.forward();
        }else{
            //call the function here that you previously called onload
            yourFunction();
        }

    }
</script>

答案 1 :(得分:0)

我会恳求你不要break the back button。我们知道打破后退按钮since the nineteen-nineties是个坏主意。

用户期望他们的浏览器如何工作,当你故意破坏正常工作的方式时,你会感到沮丧,烦恼,甚至可能会激怒他们。如果您的网站以不可预测或非标准的方式运行,许多人将拒绝使用您的网站。很容易意外地使事情难以使用,故意让你的网站更难使用是一个坏主意。