リンクを別ウィンドウ(タブ)で開くように設定することには賛否両論がありますが、やってみたかったのでやりました。
以下のスクリプトを [テーマ] -> [HTMLの編集] で</body>
の直前に挿入し、保存すれば外部リンクが別ウィンドウ(タブ)で開くようになります。
JavaScript
<script type='text/javascript'>
var rex = new RegExp('^(https?:)?\\/\\/(?!' + location.hostname + ')');
[].forEach.call(document.getElementsByTagName('a'), function(elm) {
if (rex.test(elm.href)) {
elm.target = '_blank';
}
});
</script>
補足
</body>
の直前に置く前提です。<head>
に書きたい場合は、
document.addEventListener('DOMContentLoaded', function() {
/* write here */
});
で括ってください。
- モバイルでは無効にしたい場合、
if (!/(\?|&)m=1/.test(location.search)) {
/* write here */
}
で括ってください。
Bloggerではモバイルの場合、クエリ文字列がm=1
となるので、それを利用しています。
- Blogger の [HTMLの編集] で保存すると、
'
は'
(数値文字参照)に変換されます。これを避けたい場合は、CDATA セクションで括ってください。
//<![CDATA[
/* write here */
//]]>
参考記事
以下の記事を参考にしました。
もうjQueryには頼らない!素のJavaScriptでDOMを操作するための基礎知識 - WPJ
古いブラウザーのサポートが必要ないなら、もうjQueryを使わなくてもいいかもしれません。ネイティブなDOM APIの使い方をサンプルとともに解説します。
No comments:
Post a Comment