現在のウィンドウが閉じる前に、現在のウィンドウが閉じているかどうかを確認します
<pre name = "code"> <pre name = "code"> <html> <head> <スクリプト言語= "javascript"> window.onbeforeunload = function(event){alert( "222"); // IE9はここで実行されます、Chromeは// if(event.clientx> document.body.clientwidth && event.clienty <0 || event.altkey)を実行しません。 //}} var aa; var intervalvar;関数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( "opとvalの前に閉じるチェック:"+aa.closed); //ウィンドウが閉じられていません。結果はfalse aa.close()です。 <span style = "ホワイトスペース:pre"> </span> //ウィンドウを呼び出すconsole.log( "not in wait and val is:"+aa.closed); //aa.closeは呼び出しの過程にあり、結果はfalse intervalvar = setinterval(showclose、100)です。 }; //ループを使用して、サブウィンドウが閉じているかどうかを検出します。実際、SettimeOutを使用しても問題ありませんが、値をより大きく設定する必要があります。 } </script> </head> <body onload = "loadform()" onunload = "unloadform()"> </body> </html>IE9では、ドキュメントが更新されている場合、アンロードフォームとonbeforeunloadが実行されます。ページが閉じている場合、onbeunloadのみが実行されます。
ページを閉じるときにOnunloadが実行されないことは注目に値します。この関数はブラウザに組み込まれたイベントであり、再定義できないと推定されています。
Chromeでは、ドキュメントが更新されている場合、UNLOADFORMとONBEFOREUNLOADの両方が実行されます。ページが閉じている場合、onbeunloadのみが実行されます。コメントされた行が実行されないことは注目に値します。
window.openで開いたチャイルドウィンドウの場合、window.closedプロパティを使用して閉じているかどうかを確認できます。
<html> <head> <スクリプト言語= "javascript"> var aa; var intervalvar;関数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( "opとvalの前に閉じるチェック:"+aa.closed); //ウィンドウが閉じられていません。結果はfalse aa.close()です。 // window console.logのメソッドを呼び出す( "待機中ではなく、valは:"+aa.closed); //この時点で、aa.closeは呼び出しの過程にあり、結果はfalse intervalvar = setinterval(showclose、100)です。 }; //ループを使用して、子ウィンドウが閉じているかどうかを検出します。実際、SettimeOutを使用することは問題ありませんが、値はより大きく機能する必要があります。{alert( "2!"); } </script> </head> <body onload = "loadform()" onunload = "unloadform()"> <a href = "test.htm"> calling </a> </body> </html>window.penが閉じたときにオープンするコード
<html> <head> <スクリプト言語= "javascript"> var aa; var intervalvar; window.onbeforeunload = function(event){aa.close(); 「こんにちは」を返します。 } 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"> call </a> </body> </html>