よく使うのでメモ。リンク先が特定のaタグをすべて新しいタブやウィンドウで開くようにする。
素直なJavaScript
var as = document.getElementsByTagName('a');
for (var i = 0; i < as.length; i++) {
if (as[i].href.match(/正規表現で条件/)) {
as[i].setAttribute('target', '_blank');
//as[i].onclick = function () { window.open(as[i].href); return false; };
}
}
setAttribute
でtarget="_blank"
を指定してもいいし、onclick
イベントでwindow.open
を呼んでもいい(この場合はreturn false
を忘れずに)。
jQueryが使えるときはもっと簡単。
jQuery 版 1
$('a[href$=正規表現で条件]').attr('target', '_blank');
とか
jQuery 版 2
$('a').filter(function(){
return /正規表現で条件/.test(this.href);
}).attr('target', '_blank');
ドメイン外リンクを別ウィンドウで開く
たとえば自分のドメイン以外を新しいウィンドウで開くならこんな感じ。
$('a:not('[href$="'+location.host+'"])').attr('target', '_blank');