A要素をJavascriptでフックする。
HTMLのA要素で開いたウィンドウに対してJavaScriptで制御できない。
そこで以下のスクリプトを作ってみた、だけど別窓なんて今時ほとんど使わねぇよなー。ちなみに動作確認したのはIEだけです。
//windowUtilのwindow保持変数 var windowUtil_Windows=new Array(); /** * windowをa要素の属性を元に開きます。 * * 使用するときは以下のようにしようします。 * クリックされた際にa要素のtarget属性、href属性を読み取ってウィンドウを開きます。 * <a href="aaa" target="bbb" onclick="return windowUtilOpen(this)">ccc</a> * * TODO target属性が_blankなどは2次元配列で管理するといいかもしれない。 */ function windowUtilOpen( targetAnchor ){ var href=targetAnchor.href; var target=targetAnchor.target; var win; win = window.open(href, target); win.focus(); windowUtil_Windows[target]=win; return false; } /** * windowUtilで開いたウィンドウを閉じます。 */ function windowUtilClose(){ for (target in windowUtil_Windows) { var win = windowUtil_Windows[target]; if(!win.closed){ win.close(); } } }
使い方はこんな感じ、リンクでウィンドウを開いている時に、元のウィンドウを閉じると他も閉じる。
<body unload="windowUtilClose()"> <a href="http://www.google.com" target="google" onclick="return windowUtilOpen(this)">google</a><br> <a href="http://www.yahoo.com" target="yahoo" onclick="return windowUtilOpen(this)">yahoo</a><br> </body>