** サブウィンドウ存在チェック(JavaScript) [#kfe89977]
[[HTML/JavaScript集]] > サブウィンドウ存在チェック(JavaScript)
* サブウィンドウ存在チェック(JavaScript) [#kfe89977]
#setlinebreak(on);

親画面がサブミットされた後も、子ウィンドウを残す場合でも使える存在チェック


【サブウィンドウ存在チェック(親)】
 <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>

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS