Я использую этот скрипт, чтобы заставить ссылки Открыть в новом окне с Jquery, и она отлично работаетПринуждение ссылки нагруженные Ajax, чтобы открыть в новой вкладке
// 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();
});
};
Любая помощь очень ценится.
Работает локально, но при загрузке на сервер внешние ссылки не работают с загруженным контентом. Есть идеи ? Я адаптировал функцию в соответствии с вашим предложением: - – naturelab
// добавить внешние ссылки function addExternalLinks() { $ ("a [href * = 'http: //']: not ([href * = '" + location .hostname.replace ("www.", "") + "']), a.linkException"). each (function() { if ($ (this) .find (' img ') .length == 0) { $ (this) .attr ("target", "_blank"). AddClass ('externalLink'). Attr ("title", $ (this) .attr ("title") + "- (Эта ссылка откроется в новом окне) "); } }); } – naturelab