親ウィンドウからサブウィンドウのページを切り替える

説明

サブウィンドウから呼び出し元の親ウィンドウを操作するにはwindow.openerを使います。例えばwindow.opener.document.bgColorとすると親ウィンドウの背景色を参照/設定することができます。サンプルのように親ウィンドウに任意のページURLを設定するにはwindow.opener.location.hrefと指定します。
親ウィンドウが閉じられている場合はInternet Explorer以外ではwindow.openerはnullを返します。Internet ExplorerではObjectを返してしまうためwindow.opener.closedプロパティの値を調べて親ウィンドウが閉じられているかどうか調べます。親ウィンドウが閉じられている場合にはtrue、そうでない場合はfalseとなります。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>サブウィンドウから親ウィンドウのページを切り替える</h1>
<p>親ウィンドウの内容を自由に操作できます。</p>
</body>
</html>
●sub.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<script type="text/javascript" src="sub.js"></script>
</head>
<body>
<h1>お気に入りリンク</h1>
<ul id="myfLink">
<li><a href="http://www.yahoo.co.jp/" class="ctrlWindow">Yahoo</a></li>
<li><a href="http://www.google.co.jp/" class="ctrlWindow">Google</a></li>
<li><a href="http://www.openspc2.org/">OpenSpace*</a></li>
<li><a href="http://www.goo.ne.jp/" class="ctrlWindow">goo</a>
<li><a href="http://www.excite.co.jp/">Excite*</a></li>
</ul>
</body>
</html>

●main.js
window.open("sub.html", "sbwin1","width=480,height=320");

●sub.js
window.onload = function(){
var root = document.getElementById("myfLink");
var aTag = root.getElementsByTagName("a");
for (var i=0; i<aTag.length; i++){
if (aTag[i].className.match(/ctrlWindow/)){
aTag[i].onclick = function(){
window.opener.location.href = this.href;
return false;
}
}
}
}