最近はここに書き留めておくことも忘れている始末で、我ながら情けなく思う今日この頃です。
ということで、不定期更新というか最近更新していませんが、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)