强制加载Ajax的链接在新选项卡中打开

时间:2013-10-10 11:30:59

标签: jquery ajax load external-links

我正在使用这个脚本强制链接在Jquery的新窗口中打开,并且工作正常

// add external links
function addExternalLinks () { 

$("a[href*='http://']:not([href*='"+location.hostname.replace
       ("www.","")+"']), a.linkException").each(function() {
   if($(this).find('img ').length == 0) {
$(this).click(function(event) {
         event.preventDefault();
         event.stopPropagation();
         window.open(this.href, '_blank');
        }).addClass('externalLink').attr("title", $(this).attr("title")+" - ( This link will open in a new window )");   

        }
   });
}

然而,页面的一部分使用LOAD从外部HTML页面加载内容。

function showInfo( info ) {
$("#layerinfo").load("descriptions.html #" + info );
};

我希望此加载内容中包含的链接也强制在具有相同脚本的新窗口中打开。 我无法让它正常工作。

类似的东西: -

function showInfo( info ) {
var infoContent = "descriptions.html #" + info;

$("#layerinfo").load(infoContent,function(){
$("#layerinfo").html().addExternalLinks();
}); 
};

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

addExternalLinks只是一个函数,不是String的方法(这是.html返回的),也不是链接的jQuery方法。

$("#layerinfo").load(infoContent, function () {
    addExternalLinks();
});

顺便说一句,对于addExternalLinks,您是否只能将.attr("target", "_blank")添加到所述链接而不是使用点击事件?

答案 1 :(得分:1)

尝试添加attr:

$(this).attr("target", "_blank");
希望这有帮助!