2012-08-14 93 views
1

我有一个父窗口和两个iframe在其中。我试图从另一个 的iframe.Using代码中访问一个iframe元素:从另一个iframe访问一个iframe的元素

function startplay(){ 
    var txt=""; 
    txt+= "some text"; 
    var tag = window.frames("plays").getElementById("myvideo"); 
    tag.innerHTML=txt; 
} 

上面的代码就在于这是由锚标签激活一个iframe脚本。但在调用脚本时没有任何反应。 myvideo标记内容不会更改。它是从另一个iframe中访问元素的正确方法。 我应该使用parent.document.getElementById(“plays”)。getElementById(“myvideo”);获得参考。我的视频。

代码位于iframe(playright),myvideo标签位于iframe(播放)中。

+0

这些iframe中的每一个在同一个网站上?如果他们不是,谷歌“XSS漏洞” – Wug 2012-08-14 15:18:41

回答

2

如果你在一个iframe中,你需要使用“parent”去它的父对象,并从那里引用iframe对象。

所以这应该工作:

parent.nameofotheriframe.getElementById("myvideo"); 

(通过使用的getElementById你引用< IFRAME标签>,而不是iframe对象)。

+0

我做了我的功能:parent.playscreen.getElementById(“myvideo”); playscreen是包含myvideo标签的第二个iframe的名称属性。仍然没有用。我的功能是好的,因为我可以检查它自己的iframe。 – 2012-08-14 15:29:09

+0

我希望你的名字不是身份证。 – 2012-08-14 15:33:00

+0

这可能是我的答案只适用于IE。这是否工作:parent.frames(“playscreen”)。getElementById(“myvideo”)? – Allie 2012-08-14 15:34:59

1

我有同样的问题,解决它像这样:

我的主页代码:

<div id="left"> 
    <iframe id="leftframe" name="leftframe" src="iframe-left.html"></iframe> 
</div> 
<div id="right"> 
    <iframe id="rightframe" name="rightframe" src="iframe-right.html"></iframe> 
</div> 

左帧:

<div id="DivInLeftFrame">aaa</div> 

右框架:

<input type="button" value="clickme" onclick="changeLeftFrame();"> 

功能是:

changeLeftFrame(){ 
    parent.leftframe.document.getElementById('DivInLeftFrame').innerHTML = 'bbb'; 
} 

添加 '文档' 工作。