親ウィンドウが閉じられているかどうか調べる


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows - - × -
Macintosh - - -
UNIX - - - - - - - -
Dreamcast - - - - - - - - - - × × -

ポイント if ((navigator.userAgent.indexOf("Mac") > -1)) { if (window.opener) alert("開いてます"); else alert("閉じられてます"); }else{ if (!window.opener.closed) alert("開いてます"); else alert("閉じられてます"); }
説  明 サブウィンドウから親ウィンドウが開かれているかどうかは、window.opener.closedにより判別できます。trueであれば閉じられている、falseであれば開かれている事を示します。ただし、Mac版IE5では親ウィンドウが閉じられている場合、window.opener.closedを参照するとエラーになるためwindow.openerが存在するかどうかで親ウィンドウが開かれているかどうかを判別します。
サンプル <html> <head> <title>親ウィンドウが閉じられているかどうか調べる</title> <script Language="JavaScript"><!-- subWin = window.open("sub.html","sub","width=320,height=240"); // --></script> </head> <body> 親ウィンドウが開かれているか調べる </body> </html>
補足説明 サブウィンドウ側のスクリプトは以下の通りです。 <html> <head> <title>親ウィンドウが閉じられているかどうか調べる</title> <script Language="JavaScript"><!-- function check() { if ((navigator.userAgent.indexOf("Mac") > -1)) { if (window.opener) alert("開いてます"); else alert("閉じられてます"); }else{ if (!window.opener.closed) alert("開いてます"); else alert("閉じられてます"); } } // --></script> </head> <body> <form> <input type="button" value="親チェック" onClick="check()"> </form> </body> </html>

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA