window.onbeforeunload 事件的研究



2013-03-29 17:45 
海边拾贝壳的人 
阅读(225
评论(0
编辑 
收藏 
举报

window.onbeforeunload = function() {
     // in Firefox and Netscape 7.2+ the setTimeout or setInterval do not wait
     // to be executed until after the user clicks one of the buttons in the
     // confirm()-like box.
     //setTimeout(“alert(\’hi from setTimeout()\’);”,500);
     // setTimeout() and setInterval() aren\’t called when ok is clicked in
     // IE5-6/Win, but is called in IE7 when the time is short, but not when
     // it\’s longer, like 500 (a half second).
     window.unloadTimer = setInterval(“alert(\’hi from          setInterval()\’);clearInterval(window.unloadTimer);”,500);
    
     window.onunload = function() {
         clearInterval(window.unloadTimer);
     }
     return \’onbeforeunload testing\’;
}

上面这段代码  在ie8/firefox choreme 上都能正常运行  在 oprea上 关闭窗口时不会触发这个事件

模型1:
function close(){ 
alert(“sdfsdfsdf”);

window.onbeforeunload=close;

模型2:
function close(){ 
if(document.body.clientWidth-event.clientX< 170&&event.clientY< 0||event.altKey) 

alert(“sdfsdfsdf”);
}  

window.onunload=close;

对于模型1:
1).刷新,多窗口和单窗口都适合.
2).单窗口ie关闭整个ie触发.
3).ie7多窗口中关闭单页触发
4)其他多窗口刷新触发.关闭单个和关闭整个都不触发

对于模型2:
1).ie单窗口 和ie7多窗口,都要关闭整个浏览器才触发
2).其他多窗口浏览器刷新.关闭单页,关闭整个都不触发

版权声明:本文为freeDesignLife原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/freeDesignLife/articles/2989342.html