最近はここに書き留めておくことも忘れている始末で、我ながら情けなく思う今日この頃です。
ということで、不定期更新というか最近更新していませんが、JavaScript や VBScript などを紹介していきますのでご参考になれば幸いです。
新しいウィンドウでリンクを開くには target="_blank" をアンカータグに記述すれば実現できます。
<a href="https://www.google.co.jp/" target="_blank">
しかし target="_blank" は W3C で推奨されていません。=>文法チェックすると減点対象になっています。
Javascript を使って新しいウィンドウでリンクを開くことが出来ます。
<a href="" onclick="javascript:window.open('https://www.google.co.jp/');" onkeypress="javascript:window.open('https://www.kanaya440.com');">
あるいは
<a href="javascript:window.open('https://www.google.co.jp/');">
しかし、Javascript が Off になっている場合はリンク先に移動出来ません。
それよりももっと問題なのが、検索 bot がリンクと認識しないために、発リンクのアドバンテージが受けられません。
つまり SEO上不利になります。
それを解決する方法がありました。実に目から鱗の方法です。
リンクに rel="external"」をつけるだけで実現出来ます。
Javascript
function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; var idx = -1; if(anchor.getAttribute("rel")){ idx = anchor.getAttribute("rel").indexOf("external"); } if (anchor.getAttribute("href") && idx != -1) { anchor.onclick = function(event){return popupWindow(this, event);} anchor.onkeypress = function(event){return popupWindow(this, event);} } } } function popupWindow(anchor, event){ var keyCode; if (event && event.type == 'keypress') { if (event.keyCode) { keyCode = event.keyCode; } else if (event.which) { keyCode = event.which; } // 13 == Return key. 32 == space key if (keyCode != 13 && keyCode != 32) { return true; } } return !window.open(anchor); } Event.observe(window,'load', externalLinks, false);
こちれを実現するにはAjaxライブラリの1つであるprototype.jsが必要です。
Download Prototypeから最新版をダウンロードして下さい。
実はこの方法は target="_blank" を使わないで新しいウィンドウでリンクを開く方法 で紹介されている方法です。
同じことをここで書いても仕方がないので、そちらをご覧下さい。
更に「_blankを使わないで別ウィンドウを開くにはrel="external"を使うのが美しいと思う。」という記事のやり方がとてもスマートで、目から鱗のやり方で関心します。(こちらのページは現在なくなっています)
ただし、ちょっとした間違いや、説明の分かりづらい点がありますので、サンプルを用意しました。
下記からダウンロードして参考にして下さい。
ZIPのダウンロード (47KB)