HTML/JavaScript集 > サブウィンドウ存在チェック(JavaScript) サブウィンドウ存在チェック(JavaScript) †親画面がサブミットされた後も、子ウィンドウを残す場合でも使える存在チェック 【サブウィンドウ存在チェック(親)】 <html> <head> <script type="text/javascript"> var subWinMap = {}; function isClosedSubWin(id){ closedFlg = true; try { var obj = subWinMap["subwin"+id]; closedFlg = (!obj.closed) ? false : true; } catch (e){} return closedFlg; } function openSubWin(id){ var objSubwin = window.open("subwin.html?id="+id, "subwin" + id); subWinMap["subwin"+id] = objSubwin; } function checkSubWin(id, objSubwin){ subWinMap["subwin"+id] = objSubwin; window.setTimeout("removeAttr(" + id + ")", 100); } function removeAttr(id){ if (isClosedSubWin(id)) { alert("subwin " + id + " is closed!"); } } function setSubwinObj(id){ var objSubwin = subWinMap["subwin"+id]; objSubwin.objOwn = objSubwin; } </script> </head> <body> <h1>親画面<h1> <form action="parent.html"> <input type="submit" value="submit"> </form> <input type="button" value="open subwin1" onclick="openSubWin('1');"> <input type="button" value="open subwin2" onclick="openSubWin('2');"> </body> </html> 【サブウィンドウ存在チェック(子)】 <html> <head> <script type="text/javascript"> var objOwn = null; var id = null; window.onunload = function(){ opener.checkSubWin(id, objOwn); } function setSubwinInfo(){ var url = new String(location); var args = url.split("id="); id = args[1]; document.forms[0].id.value = id; document.getElementById("title_id").innerHTML = id; window.opener.setSubwinObj(id); } </script> </head> <body onload="setSubwinInfo();"> <h1>subwin<span id="title_id"></span><h1> <form action="subwin.html" method="get"> <input type="hidden" name="id" value=""> <input type="submit" value="submit button"> </form> </body> </html> |