当浏览器关闭事件被调用时如何在其他页面中重定向

时间:2011-01-04 16:13:58

标签: javascript

我想在浏览器关闭时在另一个页面中重定向。我的代码如下:

<script language="Javascript">  
var needToConfirm = true;
window.onbeforeunload = confirmExit;
function confirmExit(){
  if (needToConfirm){
    my_window = window.open ("1.html","mywindow1","status=1,width=350,height=150");

    return "You have attempted to leave this page. If you have made any changes "
          +"to the fields without clicking the Save button, your changes will be "
          +"lost. Are you sure you want to exit this page?";
  }
}

但是当我点击浏览器的关闭按钮时,我看到系统确认消息,而且我也没有在mozilla中弹出页面。我将如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:0)

摘自this页面。

function goodbye(e) {
if(!e) e = window.event;
//e.cancelBubble is supported by IE - this will kill the bubbling process.
e.cancelBubble = true;
e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog

//e.stopPropagation works in Firefox.
if (e.stopPropagation) {
    e.stopPropagation();
    e.preventDefault();
}
}
window.onbeforeunload=goodbye;

答案 1 :(得分:0)

简短回答:

如果您没有阻止它,您的代码就能完美运行。

答案很长:

this是一个有效的例子 - 它和你的几乎一样(看看源代码)。

但是:仅当您通常禁用FF中的弹出窗口阻止程序(或创建允许该URL弹出窗口的规则)时,此方法才有效。

我确定您的代码无效的原因是激活的弹出窗口阻止程序,它显示了这个漂亮的黄色“网站试图打开弹出窗口” - 因为该网站已关闭而未向您显示警告(所以,你不能点击“允许来自这个网站的弹出窗口”)。