0

サイトのすべての外部リンクに target="_blank" を追加する必要があり、通常は次のように使用します。

$("a[href^=http]").each(function(){
    if(this.href.indexOf(location.hostname) == -1) {
        $(this).attr({
            target: "_blank",
            title: "Opens in a new window"
        });
    }
});

残念ながら、確認する必要があるリンクは、id が messageArea の div 内にあり、これらは ajax 呼び出しによって生成されるため、取得されません。

C# 正規表現関数を使用してコンテンツを書き直すか、target="_blank" を追加することもできますが、コンテンツを元の状態のままにしておくことをお勧めします。

助言がありますか?


ルクマの提案を使用すると、解決策は次のとおりです。

$.getJSON(
   "ajax/GetMessage.aspx?message=" + msgID,
   function (msgs) {
       $("div#messageArea").html(msgs.responseText);
       $("div#messageArea a[href^=http]").each(function(){
           if(this.href.indexOf(location.hostname) == -1) {
               $(this).attr({
                   target: "_blank",
                   title: "Opens in a new window"
               });
           }
       });
    }
);
4

2 に答える 2

1

ajax 呼び出しから戻ったときに、次のコードを追加します。

$("div#messageArea a[href^=http]").each(function(){
    if(this.href.indexOf(location.hostname) == -1) {
        $(this).attr({
            target: "_blank",
            title: "Opens in a new window"
        });
    }
});
于 2013-04-06T20:11:25.830 に答える
0
<a href="http://google.com">google</a>

すべてがうまくいっている

于 2013-04-06T20:17:27.893 に答える