2013-05-03 2 views
2

Я создаю контент для сайта, который отображается через iframe в мобильном приложении PhoneGap. Содержимое вытягивается из CMS, который также обслуживает контент для основного веб-сайта, поэтому он содержит сочетание внутренних и целевых = «_ пустых» ссылок.Отключить все ссылки target = "_ blank" на странице

Обращение с целевыми = "_ пустым" ссылками вызывает проблемы в PhoneGap, поэтому я хочу отключить их на веб-сайте приложения, не касаясь контента, потому что он также используется на главном веб-сайте.

Что мне нужно, это jQuery, который работает на загрузке страницы, находит все ссылки с атрибутом target = "_ blank" и делает ссылки нормальным текстом.

Что-то вроде этого (How to disable all links before load jQuery?) отключает все ссылки, но я только хочу, чтобы отключить ссылки, которые имеют цель = «_blank» атрибута, и я хочу, чтобы скрыть тот факт, что слова были ссылки в первую очередь:

var links = document.links; 
for (var i = 0, length = links.length; i < length; i++) { 
    links[i].onclick = function(e) { 
     e = e || window.event; 
     e.preventDefault(); 
    } 
} 

Так что я не хочу, чтобы просто запрещалDefault() при нажатии ссылки, но полностью удалял ссылки, сохраняя текст ссылки, и я хочу применить это только к ссылкам target = "_ blank".

ответ

3
$('a[target="_blank"]').each(function(){ 
    $(this).removeAttr('href'); 
}); 

Или, если вы хотите, чтобы полностью удалить a теги

$('a[target="_blank"]').each(function(){ 
    $(this).replaceWith($(this).text()); 
}); 

http://jsfiddle.net/mohammadAdil/kZqFD/

+0

Не уверен, но кажется, что ОП хочет: $ (это) .removeAttr ('мишень'); –

+0

Фактически, принимая этот ответ, потому что он немного чище. –

0

Я думаю

$('a[target=_blank]') 

является то, что вы ищете.

2

Вы можете удалить ссылки и заменить их с текстом только делать это:

$('a[target="_blank"]').each(function(){ 
    var linkText = $(this).text(); 
    $(this).after(linkText); 
    $(this).remove(); 
}); 

Demo: http://jsfiddle.net/hXFse/

+1

+1 за то, что он единственный, кто прочитал вопрос и выполнил то, что было задано. – Archer

0

Преобразование <a> с target='_blank' вести себя как обычный текст.

$("a[target='_blank']").removeAttr("href"); 

или удалить <a> с <span>

$.each($('a[target="_blank"]'),function(){ 
var value = $(this).text(); 
$(this).replaceWith('<span>'+value+'</span>'); 
}); 
Смежные вопросы