子宝どっとこむ

 

 リンクにtarget="_blank"を入れる方法

投稿画面のリンクボタンを押すとリンク作成が容易にできますが、ロリポブログなどではリンクボタンのデフォルトでリンクタグにtarget="_blank"が入ってくれるのに対し、MovableTypeは入っていないため、リンクを貼るたびにtarget="_blank"を貼り付けなければならず、このままではかなり面倒です(これまでその面倒に甘んじていたのですが・・・)。

そこで、遅ればせながらtarget="_blank"を自動でいれる方法を探すことにしました。

すると、Nitch.net blog21世紀のアフィリエイト通販生活などで紹介されていることがわかりました。

MT3.2のやり方は

mt-static/mt_ja.jsを開き(MT3.3の場合はmt.js)、function insertLink の中の、setSelectionの行を探します。


setSelection(e, '<a href="' + my_link + '">' + str + '</a>');
これに差し替え!


setSelection(e, '<a href="' + my_link + '" target="_blank">' + str + '</a>');
これでエントリー投稿画面からのリンクは全てtarget="_blank"がつきます。

ということらしいです。しかし自分はMT3.1なので、別のやり方を探さなければなりません。

(いっそのことこれを機会にMT3.2に上げるか、しかし、特段不便を感じていないので今しばらくこのままいじりたくない気持ちもある、そうすると、target="_blank"のところは二度手間になるし)

と思案していたところ、MovableTypeを攻略せよ!のコメントにステキなアドバイスがありました。

もっと簡単な方法を知らずにやってましたー <head>内に <base target="_blank" /> いれるだけで実現してますよー どんな環境でもいけるかは疑問 でも、試す価値あり。

by 通りすがり - 2005/05/22 03:02
ふおっ!
たしかに<BASE>タグなら……
目からウロコがぽろりぽろり。
今からはじめる方は是非この方法で!!
わたしは,直すのが面倒くさ……
by JK - 2005/05/25 14:32

ということで、これならバージョンを気にせず対応できるので早速やってみましたが、問題無しです。
しかも、うちのように複数サイトを運営していても、Head部分を生成するだけのインデックステンプレートを用意し、複数ブログ(かつ複数テンプレート)共通として作成してあれば、修正箇所も1箇所だけと、超お手軽なわけです。

目からウロコとはまさにこのことですね。

【2006/1/18追記】
Baseタグでtarget="_blank"を設定すると、当然ですが、全てのリンクが新規ウィンドウになってしまいます。これは、サイト内で、例えば次のページに進む場合も新規ウィンドウが開いてしまい、気がついたら20ウィンドウぐらい開いていた、という状態になってしまって、かなりうっとうしいことが分かりました。逆にtarget="_blank"したくない場合はtarget="_self"を入れればいいのですが、その方が面倒です。

ということで、Baseタグを使うことはボツで、先にMT3.2に上げることを検討したいと思います。というわけで、それまではいままで通り、target="_blank"は手でカット&ペーストすることになりました(泣)

【2006/1/19追記】
3.2にアップグレードして上記の修正を行ないました。快適です!

【2006/9/9追記】
3.3にアップグレードしたのでやり直しました。修正対象がmt_ja.jsファイルでなくmt.jsファイルに変わりました。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード