2012-08-14 135 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'; 
} 

添加 '文檔' 工作。