別ウィンドウに表示する

とほほのWWW入門 > とほほのJavaScript入門 > 別ウィンドウに表示する
1999.6.20初版 / 1999.9.22修正

■ 説明

<A>タグのTARGET属性を用いることも別ウィンドウを開いくことはできますが、JavaScriptを用いると、別ウィンドウの大きさや、ツールバーの有無を制御することができます。また、すでに開いている場合に、そのウィンドウにフォーカスを当てることができます。

■ 実例

[開く]

■ ソースコード

<SCRIPT LANGUAGE="JavaScript">
<!--
function openWin(url) {
    return false;
}
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.1">
<!--
var w = window;
function openWin(url) {
   if ((w == window) || w.closed) {
      w = open(url, "_blank", "width=300,height=300");
   } else {
      w.focus();
   }
   return(false);
}
// -->
</SCRIPT>
<A HREF="www.htm" onClick="return openWin('www.htm')">[開く]</A>

■ 説明

IE2.0などのJavaScriptに対応していないブラウザでは、単純に<A HREF="...">にジャンプします。

IE3.0やNN2.0ではonClick="..."でfalseを返してもHREF="..."で指定したページにジャンプしてしまうので、<SCRIPT LANGUAGE="JavaScript">で何もしないようにしています。

IE4.0以降、NN3.0以降のブラウザでは、最初、もしくは一度開かれたウィンドウが閉じられていればopen()でウィンドウを開き、さもなくば開かれているウィンドウにfocus()でフォーカスを移動します。

open()やfocus()の詳細はJavaScript入門(Window)を参照してください。

■ 動作確認

IE3.0/4.0/5.0(Win)、IE4.5(Mac)、NN3.0/4.0(Win)、NN4.7(Mac)で正常に動作することを確認しました。IE2.0(Win)とNN2.0(Win)では別ウィンドウは開きませんが、エラーも出ず、そのページにジャンプすることを確認しました。

Copyright (C) 1999 とほほ
http://wakusei.cplaza.ne.jp/twn/wwwjsx32.htm