0

我正在使用此脚本强制链接到使用 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 )");   

        }
   });
}

但是,页面的一部分正在使用从外部 HTML 页面加载的内容,使用 LOAD。

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

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

就像是 :-

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

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

非常感谢任何帮助。

4

2 回答 2

1

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

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

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

于 2013-10-10T11:36:27.997 回答
1

尝试添加 attr 代替:

$(this).attr("target", "_blank");

希望这有帮助!

于 2013-10-10T11:41:15.367 回答