javascript:window.open()

最終更新日時:2012-11-28 00:00:00
JavaScript

概要


javascriptでwindow.open()を実行すると別ウィンドウを開くことが出来、様々なサイトで使われているのですが、使われ方も様々のようです。
そこでちょっと調べてみたところ、以下のページが非常に参考になったのでほぼ転載しておきます(^_^;

http://amenti.usamimi.info/windowopen.html

最善であろう使用方法


href属性には通常通りに、リンク先となるURLを指定します。
window.open()の第一引数には this.hrefを渡して href属性を参照するようにし、return falseすることにより、hrefへのイベントの受け渡しを抑制します。

 <a href="example.html" onclick="window.open(this.href, 'test'); return false;">test</a>


こうすることにより、以下の動作が期待できます。
・JavaScript対応のブラウザであれば、ウィンドウを開いて表示(想定通り)
・JavaScript非対応のブラウザであれば、通常のハイパーリンクと同様の挙動(次善の動き)

上記以外の書き方の場合には何かしら問題が発生すると思われます。
href属性にリンク先となるURLを書かない場合は、例えばよくある"#"を指定した場合などは、JavaScript非対応のブラウザでは全く動作しませんし、検索エンジンもリンク先を辿ってくれません。
return faulseしない場合には、hrefにイベントが渡ってしまいますので、呼び出し元のページが遷移してしまいます。
※これはこれで使い道がありそうだが。。。

resizable=yes


window.open でウィンドウを開く際に様々なパラメータを指定することが出来るのですが、どうもブラウザによってデフォルト値が異なるようです。
その中でも、resizable については影響が大きく、IE ではデフォルトで no となるようです。
リサイズを禁止したい場合というのはかなり限られているので、なぜデフォルトが no なのか、、、理解に苦しみますが、現在はそのような仕様になっているので、window.open を使う際には、何も考えずに

 resizable=yes

を指定しておくことをおすすめします。
こういうブラウザ間で異なる挙動は厄介なので、早くきっちりした統一仕様を確定して欲しいところですね。


お問い合わせは 掲示板 にて。