2012-11-29 82 views
0

我有一个简单的html页面。它有一个iframe的其他网站。我想更改该Iframe中需要的锚标记的颜色。 is is possible to access Elements of iframe via javascript获取iframe的内部元素

+0

检查了这一点http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/ – Usman

回答

0

需要Javascript内的所有div元素。这与在父页面中执行它是一样的,除了必须在JavaScript命令前加上iframe的名称。

请记住,同样的原产地政策适用,所以你只能这样做,以使iframe来自你自己的服务器。

frame1.$('mydiv').style.border='1px solid #000000' 

frame1.$('mydiv').addClassName('withborder') 
+0

问题说iframe来自其他网站。 –

+0

然而,答案被接受..哦,以及.. –

1

如果由于跨域安全性导致其他页面位于另一个域中,将无法从主页面编辑iframe的HTML内容。

对此有解决方法,例如编写想要在url中进行的更改。但这真的很肮脏。

如果是在同一个域中,我建议使用,因为例如:

$('div', $('iframe')[0].contentWindow.document) 

让你的iframe的

+0

+如果你有机会到解决方法才有效这两个域的来源(你是所有者) – hereandnow78

0

可以使用

$('#iframeId').contents().find('#id-of-element-inside-iframe'); 

得到的iframe内elemets的值,但该值不能被改变。

+0

真的!!!!! ???? –

+0

你只能这样做,如果父母和iframe的src都在同一个域。 –

+0

有没有这个JavaScript的等价物。我没有使用jQuery。 –

0

只有一个简单的解决方案,只有当您拥有iframe中的内容时才会起作用。

在你的父母来源地址:

<script type="text/javascript"> 
    var innerDocument = null; 
</script> 

在你的iframe加:

<script type="text/javascript"> 
    parent.innerDocument = document; 
</script> 

当iframe中加载您现在可以通过使用innerDocument目标iframe的文档。 这规避了跨域安全。

1

我通过使用下面的代码

功能loadFrame(){ 的document.getElementById( 'pcl_frame')做的。contentWindow.document.getElementsByTagName( 'A')[0] .style.color ='蓝“; }