はてなブログのリンクを素の Javascript で別ウィンドウに開く(jQuery なし)

はてなブログのリンクは、標準ですと、外部リンクでも同じウィンドウで開きます。設定で変更することもできませんので、ググりますと、別ウィンドウで開くスクリプトがたくさんヒットします。

数ページ見ただけですが、素の Javascript で書かれたものがありませんでしたので書いてみました。


<script>
window.onload = function(){
  var reg = new RegExp('^http(s)?://(?!' + location.hostname + ')');
  Array.prototype.forEach.call(document.querySelectorAll('a'), function(node) {
    if(reg.test(node.href)) node.setAttribute('target', '_blank');
  });
};
</script>


(2016/9/6)querySelectorAll よりも getElementsByTagName の方が高速のようです。

<script>
window.onload = function(){
  var reg = new RegExp('^http(s)?://(?!' + location.hostname + ')');
  Array.prototype.forEach.call(document.getElementsByTagName('a'), function(node) {
    if(reg.test(node.href)) node.setAttribute('target', '_blank');
  });
};
</script>


設定 > 詳細設定 > headに要素を追加 に入れるか、デザイン > カスタマイズ で HTML がかけるところに入れれば、リンクのうち外部リンクのみ target=_blank が追加され、別ウィンドウ(タブ)で開くようになります。