このページのコードはすべてこれを使っています。
function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") anchor.target = "_blank"; } }
<body onload="externalLinks()"> <a href="#" rel="external">リンクはこちらから</a> </body>
<a href="#" target="_blank">リンク</a> のようにするとリンクをクリックすると新しいウィンドウなどで開きます。しかしXHTML 1.1 などでは、aタグにtargetを使えなくなるということです。Shift+クリックで新しく開けるのですが、みんな分かっているわけでないですね。しかし外部リンクの時に同じウィンドウやタグに出てくると、自分のページに戻ってもらうのにブラウザの「戻る」などが必要となるので、新しいウィンドウやタグで開くようにできないかといろいろと調べてみると、やはりいろいろと考えている人がいます。JavaScriptのコード自身はどこかに出所があるのかほとんど同じなので、ここでもそのまま上げておきます。やっていることは、Htmlコード内のaタグについて調べ、hrefがあり、relにexternalが設定されている場合に、targetに_blankを設定するという内容です。この関数をbodyのonloadで実行します。ただ、新しい窓を勝手に開くのはあまりよくないようなので、あくまでも外部リンクだけにこの設定をしています。