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>

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-11 (木) 00:48:51 (5434d)