hogehoge foobar Blog Style Beta

Web,Mac,Linux,JavaScript,Perl,PHP,RegExp,Git,Vim,Redmineなど技術的なことのメモや、ちょっと便利そうなものの紹介をしています。

JavaScriptでの別ウィンドウのオープン

JavaScriptで別ウィンドウを開くのにスマートかつモダンなやり方は無いかと調べてみました。
こちらのサイトを参考にさせていただきました。

ヨツモネット − a 要素の target="_blank" の代わり

今までは、aタグのonclickに「windows.open」とか書いていましたが、
これなら、classを指定するだけで別ウィンドウで開けるので便利ですね。

以下のコードは上記のサイトのコードを自分用に変更してみたものです。

var linkOpenWindow = {
 conf : {
     className : "external"
 },
 main : function(){
     var a = document.links;
     for (i = 0; i <a.length; i++) {
         if (new RegExp("\\b" + linkOpenWindow.conf.className + "\\b").exec(a[i].className)){
             a[i].onclick = linkOpenWindow.openWindow;
             a[i].onkeypress = linkOpenWindow.openWindow;
         }
     }
 },
 openWindow : function(){
     var uri = this.href;
     window.open(uri, "", "width=750, height=550, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes,  resizable=yes, close=yes");
     this.href = uri;
     return false;
 },
 addEventListener : function(){
     try {
         window.addEventListener('load', linkOpenWindow.main, false);
     } catch (e) {
         window.attachEvent('onload', linkOpenWindow.main);
     }
 }

}
linkOpenWindow.addEventListener();