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" 但我宁愿将内容保留在其原始状态。

有什么建议么?


使用 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"
               });
           }
       });
    }
);
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 回答