如何在第二次刷新时将页面重定向到另一个页面

7
<script language="JavaScript">
  window.onbeforeunload = confirmExit;
  function confirmExit()
  {
   alert("");window.location="index.html";
  }
</script>

我尝试了这段代码,但它没有起作用。

1
你想做什么?防止用户离开你的网站吗?但是只有第二次尝试离开时才这样做? - Peter Ehrlich
如果我的代码解决了您的问题,请投票支持并将其标记为接受的答案,以便其他人也可以使用这段代码。 - Robin Michael Poothurai
5个回答

15

bbb.jsp 中:

window.onbeforeunload = function() { 
    window.setTimeout(function () { 
        window.location = 'AAA.jsp';
    }, 0); 
    window.onbeforeunload = null; // necessary to prevent infinite loop, that kills your browser 
}

它完美地运行!@Lokesh,你能解释一下这是如何工作的吗?它如何与setTimeOut函数一起工作? - Gsm

3

Windows onload会在所有内容加载完后加载,但速度有点慢。另一个解决方法是使用document.onload(兼容性问题)。

window.onload = function () {
  window.location = "/allotment";
}

2
以下代码将适用于您
function confirmExit()
{
 alert("exiting");
 window.location.href='index.html';
 return true;
}
window.onbeforeunload = confirmExit;

1
在bbb.jsp文件中
<script>
    submitFormOkay = false;
    $(document.body).on("click", "a", function() {
        submitFormOkay = true;
    });
    window.onbeforeunload = function(event) {
        event.preventDefault(); 
        if (!submitFormOkay) {
            window.setTimeout(function () { 
                window.location = "index.html";
            }, 0); 
            window.onbeforeunload = null;
        }
    }
</script>

我希望这会有所帮助。干杯!

0

这对我有用。不是第二次尝试部分,而是在显示弹出窗口后更改URL。如果你点击取消,函数不会运行。如果你点击“重新加载”,函数将被调用并且你将被重定向。

$(window).on('beforeunload', function() {
  $(window).on('unload', function() {
    window.location.href = 'index.html';
  });

  return 'Not an empty string';
});

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