人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

はてなブログで、リンクを設定する際に、「新しいタブで開く」ようにする方法が分かりません。
ひとつひとつ target="_blank" と設定しなくてはならないのでしょうか。

●質問者: こうや
●カテゴリ:はてなの使い方 ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 椶櫚

一応、

<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属性を指定しなければこれになる。


2 ● a-kuma3
ベストアンサー

ダイアリーと違って、ブログの機能としては設定できないようなので、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 が設定されません。
ぼくのはてなブログにも、仕込んでみましたので、動作を確認してみてください。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ