在当前窗口关闭之前,检查当前窗口是否已关闭。




窗口。onbeforeunload =函数(事件){
警告(222); / / IE9将执行,不执行铬
如果(事件。ClientX > document.body.clientwidth事件。clienty<0 | |事件。altkey){ / / / /如果不及时刷新。
返回确定关闭窗口;
}
}
VaR AA;
无功intervalvar;
功能showclose(){
console.log(等待和val:+ AA。关闭);
ClearInterval(intervalvar);
}
功能loadform(){
AA = window.open('foo .html,'windowname、宽度为200,高度为200,滚动条=无);
console.log(检查关门前OP和val + AA。关闭:); / /现在窗户没关,结果是错误的
(aa)关闭窗口
console.log(不在等待和val + AA。关闭:); / / aa.close调用过程,结果是错误的
intervalvar = setInterval(showclose,100);}; / /循环检测窗口关闭,事实上,setTimeout也是可能的,但一个更大的价值
功能unloadform(){ alert(2!;}





在IE9,如果文档被刷新,都unloadform和onbeforeunload将被执行,如果网页是封闭的,只有onbeforeunload事件将被执行。

值得注意的是,onunload不运行时关闭页面。据估计,这个函数是一个浏览器内置事件,不能重新定义。

在Chrome中,如果我们刷新文件,将执行unloadform和onbeforeunload。如果我们关闭网页,我们将只执行onbeforeunload。值得注意的是,带注释的行永远不会执行。

如果window.open打开的子窗口,它可以检测到被window.closed产权封闭




VaR AA;
无功intervalvar;
功能showclose(){
console.log(等待和val:+ AA。关闭);
ClearInterval(intervalvar);
}
功能loadform(){
AA = window.open('foo .html,'windowname、宽度为200,高度为200,滚动条=无);
console.log(检查关门前OP和val + AA。关闭:); / /现在窗户没关,结果是错误的
(aa)关闭窗口
console.log(不在等待和val + AA。关闭:); / / aa.close调用过程,结果是错误的
intervalvar = setInterval(showclose,100);}; / /循环检测窗口关闭,事实上,setTimeout也是可能的,但一个更大的价值
功能unloadform(){ alert(2!;}

呼叫



自动关闭window.open当父窗口关闭代码




VaR AA;
无功intervalvar;
窗口。onbeforeunload =函数(事件){
Aa.close();
返回hello;
}
功能loadform(){
AA = window.open(测试.htm,'windowname、宽度为200,高度为200,滚动条=无);
};
功能unloadform(){ alert(2!;}

呼叫