JavaScriptを使ってリンクを別ウィンドウで開く
JavaScript February 21st, 2008XHTML1.0Strictではaタグにtarget="_blank"が使えない。別ウィンドウで開きたいのならXHTML1.0Trasitionalでtarget="_blank"使えばって誰か言ってたみたいだけど。ここではJavaScriptを使って別ウィンドウで開く方法を書きます。
-
<a href="http://kyokutyo.com/" onclick="window.open("http://kyokutyo.com/"); return false;">リンク</a>とかやってみる。長い。
-
<a href="http://kyokutyo.com/" onclick="window.open(this.href); return false;">リンク</a>
とthis.href使うとちょっと短くなる。
だけどaタグに毎度書いてるとHTMLがごちゃごちゃしてくる。 - スクリプトを外に出してHTMLをすっきりさせたい。別ウィンドウで開きたいリンクにはrel="external"を付けるようにする。
HTML<a href="http://kyokutyo.com/" rel="external">リンク</a>
JSファイル
function externalLinks() { if (! document.getElementsByTagName ) return; var a = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { if(anchors[i].getAttribute("href") && anchors[i].getAttribute("rel") == "external"){ anchors[i].setAttribute("onclick","window.open(this.href); return false;"); } } } window.onload = externalLinks;ロードされたらexternalLinksを実行。aタグを全部拾って、順にチェック。hrefがあって、且つrelにexternalが指定されてる場合、onclickにwindow.open(this.href); return false;を設定する。IEでうごかない。
- HTMLは3と同じ。
IE対応版JSファイル
function externalLinks() { if (! document.getElementsByTagName ) return; var anchors = document.getElementsByTagName("a"); var isIE = (document.documentElement.getAttribute("style") == document.documentElement.style); for (var i=0; i<anchors.length; i++) { if(anchors[i].getAttribute("href") && anchors[i].getAttribute("rel") == "external"){ if(isIE) anchors[i].setAttribute("onclick",new Function("window.open(this.href); return false;")); else anchors[i].setAttribute("onclick","window.open(this.href); return false;"); } } } window.onload = externalLinks;
4のコードをSnipplrに置いた。
external link - JavaScript - Snipplr
やっぱりハイライトついてた方が見やすいな。
参考にしたサイト
