はてなブログで、リンクを設定する際に、「新しいタブで開く」ようにする方法が分かりません。

ひとつひとつ target="_blank" と設定しなくてはならないのでしょうか。

回答の条件
  • 1人50回まで
  • 登録:2015/02/11 04:02:56
  • 終了:2015/03/13 04:05:05

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4363ベストアンサー獲得回数18002015/02/11 18:55:53

ダイアリーと違って、ブログの機能としては設定できないようなので、javascript のコードを書いてみました。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
(function($){

    $(function() {
        /*
            question:1423594976
            記事内のリンクに target='_blank' を設定する
        */
        var forEach = Array.prototype.forEach;
        var changeTarget = function(ctx) {
            forEach.call(document.body.querySelectorAll('article.entry div.entry-content a'), function (item) {
                if (item.target == '') {
                    item.target = '_blank';
                }
            });
        };
        changeTarget(document.body);
    });

})(jQuery);
</script>

上記のコードを、デザインから、スパナのマーク(カスタマイズ)をクリック。
「ヘッダ」の中の「タイトル下」の中に追加。

サイドバーの中の最新記事とかは別ウィンドウで開く必要はないと思うので、記事の中の A タグだけ target="_blank" を指定するようにしてあります。
また、元々 target が指定されているものは、変更しないようにしてあります。

javascript で設定しているので、ページの表示が完了しないと target が設定されません。
ぼくのはてなブログにも、仕込んでみましたので、動作を確認してみてください。

その他の回答(1件)

id:jwrekitan No.1

椶櫚回答回数167ベストアンサー獲得回数672015/02/11 18:23:33

一応、

<base target="_blank">

の一文を追加すれば、毎回指定する手間が省けます。baseは<head> ~ </head>内に記述しないといけない特殊な要素なのですが、検索したら追加方法が見つかりましたので、以下を参考にブログ設定の該当する枠内に放り込んでください(動作確認済み)。

ブログのhead部分にmetaタグなどを自由に追加できるようにしました
http://staff.hatenablog.com/entry/2014/02/19/191316

ただし、"_blank"を指定してしまうと、クリックするたびにウインドウを無限増殖し続けてしまうので、"new"でもなんでもいいので"_blank"の代わりに任意の名前を記述して、新規に開くターゲットウインドウを1つだけに留めると良いです。つまりお勧めは↓こちら。

<base target="new">

もちろん"new"以外の他の文字列でも(予約語以外ならなんでも)OK。



↓base要素の詳しい解説

[41] base でベースの URL を示そう
http://honttoni.blog74.fc2.com/?tag=base%CD%D7%C1%C7

_self ( target属性の keyword)
デフォルト。target属性を指定しなければこれになる。

id:a-kuma3 No.2

a-kuma3回答回数4363ベストアンサー獲得回数18002015/02/11 18:55:53ここでベストアンサー

ダイアリーと違って、ブログの機能としては設定できないようなので、javascript のコードを書いてみました。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
(function($){

    $(function() {
        /*
            question:1423594976
            記事内のリンクに target='_blank' を設定する
        */
        var forEach = Array.prototype.forEach;
        var changeTarget = function(ctx) {
            forEach.call(document.body.querySelectorAll('article.entry div.entry-content a'), function (item) {
                if (item.target == '') {
                    item.target = '_blank';
                }
            });
        };
        changeTarget(document.body);
    });

})(jQuery);
</script>

上記のコードを、デザインから、スパナのマーク(カスタマイズ)をクリック。
「ヘッダ」の中の「タイトル下」の中に追加。

サイドバーの中の最新記事とかは別ウィンドウで開く必要はないと思うので、記事の中の A タグだけ target="_blank" を指定するようにしてあります。
また、元々 target が指定されているものは、変更しないようにしてあります。

javascript で設定しているので、ページの表示が完了しないと target が設定されません。
ぼくのはてなブログにも、仕込んでみましたので、動作を確認してみてください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません