いわゆる小窓です。これはJavaScriptの window.open() というメソッドで 小窓となるウィンドウを生成します。
各引数の文字列は一重引用符または二重引用符で括って指定します。
第1引数「URL」は生成されるウィンドウに表示するページのURLです。
※ ウィンドウに表示するページ(別のファイル)は別途作成して用意しておきます。
第2引数「ウィンドウ名」は特に指定する必要がなければ null で良いでしょう。
ウィンドウ名を指定するときは引用符で括ります。
※ null を指定するとウィンドウ名の設定されていない新規ウィンドウとなります。
(HTMLの属性 target="_blank" と同等です)
例: window.open('example.html', null);
第3引数「オプション」はウィンドウの特徴を設定する文字列です。 この文字列は複数のパラメーターをカンマで区切って指定しますので、 一重引用符または二重引用符で括る部分を間違えないよう注意が必要です。 オプションを省略すると単にブラウザの新規ウィンドウと同様になります。
パラメーターは他にも各ブラウザ独自のものなどありますが、 主要なものは次の通りです。
パラメーター | 値 | 意味 |
---|---|---|
width | 数値 | ウィンドウ幅 |
height | 数値 | ウィンドウ高さ |
left | 数値 | ウィンドウ位置左 |
top | 数値 | ウィンドウ位置上 |
menubar | yes/no | メニューバー有無 |
toolbar | yes/no | ツールバー有無 |
location | yes/no | アドレスバー有無 |
status | yes/no | ステータスバー有無 |
resizable | yes/no | リサイズ可否 |
scrollbars | yes/no | スクロールバー有無 |
※ 値はの数値はピクセル値です。
※ ウィンドウの位置はデスクトップ画面の左上からの数値です。
window.open()の戻り値は、ウィンドウの生成に成功したときは 生成されたウィンドウオブジェクト、失敗したときは null となります。
次の例は上手く動作しません。(一部のブラウザを除く) 小窓のウィンドウが開いた後、ウィンドウを呼び出したページは javascript:window.open(・・・);を表示しようとしてしまいます。
テスト1 (小窓で開きますが不具合有り)
次のようにファンクションとして定義して呼び出すか void() で括って値を返さない ようにすると上手く動作します。
もしくは次のようにonclickイベントで window.open() を呼び出し、 href属性にはダミーとして javascript:void(0); や # などを指定すると 上手く動作します。 但し、 # の場合、小窓を呼び出したページは先頭に移動してしまいます。
※ aタグにhref属性を使用せずにカーソルの形状をスタイル指定(cursor:pointer)して、
onclickで小窓を生成する方法もあります。
これは、spanなど別の要素のタグでも同様に出来ます。
しかし、上記の例ではいずれもJavaScriptを無効にしている環境や、JavaScriptが 搭載されていないブラウザなどでは小窓内のページを全く閲覧出来ないといった 問題もあります。また、検索エンジンのクローラーにも認識されません。
そこで次のようにhref属性で開くURLを指定しておき、window.open()の第一引数には
this.hrefを渡し、そして、window.open()の後にreturn false;でhref属性への
イベントを抑制するとJavaScriptが有効の場合は小窓、無効または実装されていない
場合は普通のハイパーリンクとなります。
※ アクセシビリティの観点から、この方法が最善だろうと思います。
テスト6
(小窓で開きます)
小窓を画面の中央に表示するよう考えてみました。 URL、ウィンドウ名、幅、高さを指定して使用出来るようにしていますので、 これ一つあれば様々なサイズのウィンドウが開けます。
クリック1
(400×300の小窓で開きます)
クリック2
(600×400の小窓で開きます)