jQuery - 如何将target =“_ blank”添加到生成的文本中的外部链接

时间:2013-04-06 20:08:33

标签: jquery

我需要将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#regex函数并重写内容或添加target =“_ blank”但我宁愿将内容保留在原始状态。

有什么建议吗?


使用lucuma的建议解决方案是:

$.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"
               });
           }
       });
    }
);

2 个答案:

答案 0 :(得分: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"
        });
    }
});

答案 1 :(得分:0)

<a href="http://google.com">google</a>

all is work也许你可以展示更多代码?