JavaScriptで特定のaタグをすべて新しいタブ(ウィンドウ)で開くようにする

よく使うのでメモ。リンク先が特定の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; };
  }
}

setAttributetarget="_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');

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です