2017-06-01 59 views
1

有没有办法删除iframe中所有链接中的所有锚点标题属性,以便当您将鼠标悬停在它们上面时,您不会获得标题?删除iframe中的所有锚点标题属性

我知道我可以做类似以下的事情,但由于某种原因,它不工作。

$("iframe").load(function() { 
    $("iframe").contents().find("a").each(function(index) { 
     $(this).attr('title',''); 
    }); 
}); 

任何帮助,将不胜感激。

+0

是来自同一个域,协议等 – adeneo

+0

加载的iframe不,完全不同的域。我只是想杀锚锚,因为他们在这个instagram插件中很烦人@adeneo – bryan

+0

看到这个问题/答案:https://stackoverflow.com/questions/6170925/get-dom-content-of-cross- domain-iframe – CodeLikeBeaker

回答

1

如果iframe中使用相同的协议和域,您可以更改iframe的内容。

不同的协议或域会产生安全异常。

0

鉴于iFrame的内容是从同一个域,你可以使用下面的每一个锚标记

$('a').removeAttr('title'); 
+0

我的问题是没有得到内容 – bryan

+0

Contents()只能读取来自同一个域的内容。 –

+0

太棒了,那么如果它不是同一个域名,我该怎么做呢? – bryan

1

这会为你工作在同一个域:如果你不

$('iframe').load(function(){ 
     $(this).contents().find('a').removeAttr('title'); 
}) 

在同一个域上,它将不起作用。请参阅下面的SO问题/答案:

Get DOM content of cross-domain iframe

+1

不起作用。 '$(this).contents()'不会返回任何内容。 '$(this)'返回iframe,但是 – bryan

+0

我看到你的问题是跨域。这只会工作在同一个域。 – CodeLikeBeaker

0

试试这个:

的Javascript:Demo

var iframe = document.getElementById('iframeId'); 
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 

var links = innerDoc.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    links[i].removeAttribute("title"); 
} 

的Jquery:Demo

setTimeout(function() { 
     $("#iframeId").contents().find("a").removeAttr("title"); 
}, 1000);