Heim  >  Artikel  >  Web-Frontend  >  JavaScript erkennt, ob das Fenster geschlossen ist, bevor das aktuelle Fenster geschlossen wird._javascript-Tipps

JavaScript erkennt, ob das Fenster geschlossen ist, bevor das aktuelle Fenster geschlossen wird._javascript-Tipps

WBOY
WBOYOriginal
2016-05-16 16:34:471396Durchsuche

Erkennen Sie, ob das aktuelle Fenster geschlossen ist, bevor das aktuelle Fenster geschlossen wird

<pre name="code" class="html"><pre name="code" class="html"><HTML><HEAD> 
<script Language="JavaScript"> 
window.onbeforeunload=function(event){ 
alert("222"); //这里IE9会执行,CHROME不会执行 
// if(event.clientX>document.body.clientWidth && event.clientY<0||event.altKey){ //如果是刷新,则不提示 
RETURN "确定关闭窗口&#63;"; 
// } 
} 
var aa ; 
var intervalVar; 
function showClose(){ 
console.log(" wait and val is :"+aa.closed); 
clearInterval(intervalVar); 
} 
function loadform(){ 
aa=window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no"); 
console.log("check close before op and val is :"+aa.closed); //现在窗口未关闭,结果为false 
aa.close();<span style="white-space:pre"> </span> //调用窗口关闭的方法 
console.log("not in wait and val is :"+aa.closed); //此时aa.close正在调用过程中,结果为false 
intervalVar = setInterval(showClose,100); }; //用循环检测子窗口是否关闭,其实用setTimeout也是可以的,不过值要设得大一些 
function unloadform(){ alert("2!"); } 
</script> 
</HEAD><BODY OnLoad="loadform()" OnUnload="unloadform()"> 
</BODY></HTML>

Wenn das Dokument in IE9 aktualisiert wird, werden sowohl unloadform als auch onbeforeunload ausgeführt. Wenn die Seite geschlossen ist, wird nur das onbeforeunload-Ereignis ausgeführt

Es ist zu beachten, dass onunload nicht ausgeführt wird, wenn die Seite geschlossen wird. Es wird geschätzt, dass diese Funktion ein integriertes Ereignis des Browsers ist und nicht neu definiert werden kann

Wenn Sie das Dokument aktualisieren, werden sowohl „unloadform“ als auch „onbeforeunload“ ausgeführt. Wenn Sie die Seite schließen, wird nur „onbeforeunload“ ausgeführt. Es ist zu beachten, dass die kommentierte Zeile niemals ausgeführt wird

Wenn es sich um ein untergeordnetes Fenster handelt, das von window.open geöffnet wird, können Sie mithilfe der Eigenschaft window.closed erkennen, ob es geschlossen ist

<HTML><HEAD> 
<script Language="JavaScript"> 
var aa ; 
var intervalVar; 
function showClose(){ 
console.log(" wait and val is :"+aa.closed); 
clearInterval(intervalVar); 
} 
function loadform(){ 
aa=window.open('foo.html', 'windowName',"width=200,height=200,scrollbars=no"); 
console.log("check close before op and val is :"+aa.closed); //现在窗口未关闭,结果为false 
aa.close(); //调用窗口关闭的方法 
console.log("not in wait and val is :"+aa.closed); //此时aa.close正在调用过程中,结果为false 
intervalVar = setInterval(showClose,100); }; //用循环检测子窗口是否关闭,其实用setTimeout也是可以的,不过值要设得大一些 
function unloadform(){ alert("2!"); } 
</script> 
</HEAD><BODY OnLoad="loadform()" OnUnload="unloadform()"> <a href="test.htm">调用</a> 
</BODY></HTML>
Code, der window.open automatisch schließt, wenn das übergeordnete Fenster geschlossen wird

<HTML><HEAD> 
<script Language="JavaScript"> 
var aa ; 
var intervalVar; 
window.onbeforeunload=function(event){ 
aa.close(); 
return "hello"; 
} 
function loadform(){ 
aa=window.open('test.htm', 'windowName',"width=200,height=200,scrollbars=no"); 
}; 
function unloadform(){ alert("2!"); } 
</script> 
</HEAD><BODY OnLoad="loadform()" OnUnload="unloadform()"> <a href="test.htm">调用</a> 
</BODY></HTML>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn