我正在为通过PhoneGap移动应用中的iframe显示的网站构建内容。内容是从CMS提取的,CMS也提供主网站的内容,因此它混合了内部和目标=“_空白”链接。
处理target =“_ blank”链接在PhoneGap中证明是有问题的,所以我想在应用网站中禁用它们而不触及内容,因为它也在主网站上使用。
我需要的是在页面加载时运行的jQuery,找到具有target =“_ blank”属性的所有链接并使链接成为普通文本。
这样的事情(How to disable all links before load jQuery?)会禁用所有链接,但我只想禁用具有target =“_ blank”属性的链接,并且我想隐藏这些字首先是链接的事实:< / p>
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();
}
}
所以我不想简单地在链接点击时阻止默认(),但在保留链接文本的同时完全删除链接,我想将此应用于target =“_ blank”链接。
答案 0 :(得分:3)
$('a[target="_blank"]').each(function(){
$(this).removeAttr('href');
});
或者,如果您想完全删除a
代码
$('a[target="_blank"]').each(function(){
$(this).replaceWith($(this).text());
});
答案 1 :(得分:2)
您可以删除链接并将其替换为仅使用文本进行替换:
$('a[target="_blank"]').each(function(){
var linkText = $(this).text();
$(this).after(linkText);
$(this).remove();
});
答案 2 :(得分:0)
我认为
$('a[target=_blank]')
正是您要找的。 p>
答案 3 :(得分: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>');
});