コメントのリンクを新しいウィンドウで表示する

コメントのリンクを新しいウィンドウで表示する

Posted at November 16,2004 12:15 AM
Tag:[]

Movable Type のコメントに挿入するHTMLタグはサニタイジングの関係で使用が制限されています。デフォルトで使用可能なタグ(属性含む)は

a href、b、br、p、strong、em、ul、li、blockquote

です。つまり a タグで許容されている属性は href のみですので、target 属性を付与しても Movable Type が自動的に target 属性を削除するため別ウィンドウで表示することはできません。

下記に target 属性を有効にするための変更方法を記します。なおこの機能を利用する場合の注意事項として、コメントのリンクを有効にする方法は

  1. http://? を直接コメントとして記述したものに自動的にリンク(=aタグ)を付与する
  2. <a href="http://?" target="_blank">~</a>を手入力してリンクする

の2通りがありますが、両者は排他的ですのでいずれかの機能しか有効にできません。

リンク設定左図は管理画面の設定箇所の抜粋です。図のように上の「コメントでのHTMLの利用を許可する」をチェックすればHTMLタグが利用できます。下の「URLを自動的にリンクにする」をチェックすればコメントに記したURLに自動的にリンクが与えられます。上にチェックがついている場合、下のチェックは無効になります。これらを踏まえてどちらのカスタマイズを実施するかを選択ください。

1.の場合

1.1 target 属性を許可する(方法その1)

カスタマイズ先と同じ画面で最初の「一般的な設定」の「除去機能」のラジオボタンより「カスタマイズ」を選択し、ラジオボタンの右側にあるテキストボックスに下記の文字列をそのまま設定し、「保存」をクリックします。再構築は不要です。図のような設定状態になります。
a href,a href target,b,br/,p,strong,em,ul,li,blockquote

1.2 target 属性を許可する(方法その2)

mt.cfgの358行目の下記の部分を変更する

変更前

# GlobalSanitizeSpec br/,p

変更後(先頭の"#"および半角空白を削除)

GlobalSanitizeSpec a href,a href target,b,br/,p,strong,em,ul,li,blockquote

カスタマイズはどちらか一方で大丈夫です。なおいずれの方法も他のタグを事前に追加されている場合は引き継いでください(上記はデフォルトの設定に target 属性を追加しているだけです)。

・リンクに target 属性を自動付与する
上記のいずれかの対処に加え、

lib/MT/Util.pm

の500行目辺りにある下記の関数に青色部分を追加してください。
これでコメント内の http://? と書かれたURLにtarget属性付きのリンクが自動で付与されます。

sub munge_comment {
    my($text, $blog) = @_;
    unless ($blog->allow_comment_html) {
        $text = remove_html($text);
        if ($blog->autolink_urls) {
            $text =~ s!(http://\S+)!<a href="$1" target="_blank">$1</a>!g;
        }
    }
    $text;
}

2.の場合

1項の「target属性を有効にする」のいずれかを実施すれば、コメント内に記述した a タグの target 属性指定が有効になります。なお1の「target 属性を自動付与する」を実施しても自動付与はされませんので、手入力で target 属性を指定してください。
関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

コメント中のリンクを別窓で開く from やむやむ
コメント中のリンクに target="_blank" と 別窓で開くように指定し... [続きを読む]

Tracked on November 16, 2004 2:43 AM

コメントのリンクを別窓表示に from Internet Zone::Movable TypeでBlog生活
コメントの欄に記入されたURLは自動的にリンクになるように設定しているのですが、それでも新しいウィンドウで開かないので、なんとかならんかなあ〓と思っていたら、こ... [続きを読む]

Tracked on November 21, 2004 12:12 PM

コメントのリンクを新しいウィンドウで表示する from First Weblog
小粋空間: コメントのリンクを新しいウィンドウで表示するコメントのリンクを新しい... [続きを読む]

Tracked on January 20, 2005 12:09 AM

コメントのリンクを別のウィンドウで表示する from とりあえずLOG
 またまた、小粋空間さんにお世話になってしまいました。 手順1「mt.cfg」ファイルの358行目の# GlobalSanitizeSpec br/,pを 頭の... [続きを読む]

Tracked on July 4, 2005 12:46 PM
コメント

ホントありがとうございました。先日、コメント欄で絵文字を使えるようにするため、HTMLタグの使用を許可する設定にしてたので、さえらの場合、こちらの記事の2のケースに該当します。target 属性を許可する(方法その1)で、a href target を使用できるタグに加え、実際以前に target="_blank" と指定したのに別窓で開かなかったリンクをクリックしてみると・・・見事に別窓が開いてくれました。ヽ( ̄▽ ̄)ノ

[1] Posted by さえら : November 16, 2004 2:41 AM

いつもお世話になっております。

おお、これはいいと思い1の方法で早速試してみたのですが、target属性付与どころかリンクもされません。
何度か確かめて見て、設定に間違いは無いように思うのですが、もし陥りやすいミスなど心当たりがありましたらご教授頂けますでしょうか。

[2] Posted by 月夜 : November 16, 2004 11:43 AM

自己解決しました。
1のやり方がURLを自動的にリンクにする」、2のやり方が「コメントでのHTMLの利用を許可する」なのですよね。
勘違いして逆に設定していたようです。
お蔭様で随分便利になりました。
今後もよろしくお願いいたします。

[3] Posted by 月夜 : November 16, 2004 1:56 PM

>さえらさん
おめでとうございます。
私も勉強になりました。(笑)

>月夜さん
あ、画像が紛らわしかったですね…すいません。
とりあえずうまくできたようでよかったです。
ではでは!

[4] Posted by yujiro : November 16, 2004 10:07 PM

はじめてコメント残します。失礼します。

 コメント欄をMovable typeに設置したところ、PermalinkというかMTEntrylinkでlinkされているところがすべて、コメントをもらったページにリンクされてしまうと言う悪夢のような事態に遭遇しています。

 コメント欄を削除しても、一向に直らないようです。

 アドレスを見ると、各記事のアドレスなのですが、飛ぶページはいつも同じ。

 「続きを読む」がまったく機能しなくなってしまいました。

 いったいどうすればよいのでしょうか?

 解決方法も見つからずお便りした次第です。

 もしご存知でしたら教えていただけないでしょうか。

 どうぞ宜しくお願い致します。

[5] Posted by yuco : December 12, 2005 3:30 PM

>yucoさん
はじめまして。
ご質問の件ですが、原因不明です。
根本的な解決につながらないと思いますが、以下、思いついたことを書いておきます。

・ブラウザの左上に表示される記事タイトルは問題ないようですが、エントリーの中身自体は大丈夫でしょうか?
・不具合の後、エントリーアーカイブは再構築されましたでしょうか?
・MTEntrylink を MTEntryPermalink に変更されるとどうなるでしょうか?
・不具合が直らないようであれば、デフォルトテンプレートに入れ替えてみるという手もあります(現状のテンプレートはバックアップをとっておきましょう)。

以上です。
それではどうぞよろしくお願い致します。

[6] Posted by yujiro : December 13, 2005 12:17 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)