0

我有一个场景,如果用户试图关闭当前的浏览器窗口,那么应该向他显示一个确认框。如果他确认关闭窗口,则该窗口应关闭并以不同的 url 打开新窗口。

我尝试使用以下代码来显示确认框,但如果用户确认关闭当前窗口,我无法弄清楚如何打开新窗口。

var preventUnloadPrompt;            
$('a').live('click', function () { preventUnloadPrompt = true; });
$('form').live('submit', function () { preventUnloadPrompt = true; });
$(window).bind("beforeunload", function () {
    if (preventUnloadPrompt)
    { return; }
    else {
        return confirm("quit??");            
    }
});

任何类型的帮助表示赞赏。谢谢。

4

2 回答 2

1

当一个窗口关闭时,一切,绝对与该窗口相关的一切,无论是否可见......待处理的javascript代码,屏幕上的东西等都消失了,其中包括正在执行中的脚本 - 噗 - 消失了,基本上取消,中止,暂停,停止任何正在运行的脚本。

时序要求除了关闭窗口之外,所有其他用户发起的操作都必须首先完成。

例子:

javascript:
void(window.open("data:text/html,
<html>
<a href=\"javascript:window.open('about:blank');self.close();void(0);\">open & close</a> this link does both<br/>
<a href=\"javascript:self.close();window.open('about:blank');void(0);\">close & open</a> this does close but open fails
</html>
"))

链接可以用if(confirm("quit??")){ ... }

测试:

window.navigator.userAgent =
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

书签:
如果用户确认关闭当前窗口,则在关闭当前窗口时打开一个新的浏览器窗口

于 2012-10-03T18:54:25.960 回答
-1
var answer = confirm("quit??");
if (answer){
    window.open("http://www.google.com/");
}
else{
// do something else
}
于 2012-07-28T16:00:10.347 回答