重定向 onbeforeunload 函数

3

我试图重定向一个 onbeforeunload,但是完全没有成功。这是我目前的进展:

window.location.href 似乎不起作用。

window.onbeforeunload = function(e) {
       window.location.href = ("http://www.google.com");
        return "Are you sure you want to leave?";
};

这个重定向是持久的,无论用户选择留下还是离开都会进行重定向。我只想在用户选择离开时进行重定向。

var stayonthis = true;
  var a;
  function load() {
   window.onbeforeunload = function(e) {
        if(stayonthis){
         a = setTimeout('window.location.href="http://google.com";',100);
         stayonthis = false;    
         return "Do you really want to leave now?";
        }
        else {
            clearTimeout(a);
        }

    };
    window.onunload = function(e) {
         clearTimeout(a);
    };
  }
  window.onload = load;

我能想到的最接近的方法是这个,但它会在新窗口中打开链接。我只想在同一个窗口中打开链接。
window.onbeforeunload = function(){
        window.open("http://www.google.com");//Setting parameters to _self or _parent still opens in new window.
        return "Are you sure you want to leave?";
}

我正在尝试重定向到内部URL(如果这很重要的话)。
非常感谢您的建议。谢谢。
1个回答

1

Onbeforeunload旨在在您认为用户可能需要留在页面时提示用户消息。如果他们选择留下,您不能基于其响应执行操作,重定向或执行任何其他操作。如果他们选择离开,则会离开而不做其他事情。


你可能已经在评论区发布了这个。这不是一个答案。 - joejam
这就是答案,你不能做你试图去做的事情。 - QBM5

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