2011-09-22 262 views
0

我確定這是非常基本的,但我似乎無法得到我發現爲我工作的任何解決方案。基本上,我需要從iframe中獲取div的內容,並將它們寫入父頁面中的div。這是我的:在父頁面顯示iframe div內容

<iframe src="slideshows/slideshow/case2.html" frameborder=0 scrolling="no" 
id="frame1" name="frame1"></iframe> 

<div id="caption"> 
    <script type="text/javascript"> 
    var caption = frame1.document.getElementById('slidecaption'); 
    document.write(caption); 
    </script> 
</div> 

'slidecaption'是我試圖抓住的iframe中的ID的名稱。

我得到的只是「null」。是否因爲iframe內容尚未加載?如果是這樣,我如何推遲,直到iframe加載?

感謝, 斯科特


多虧了你們倆的幫助。我想通了,基於馬爾西奧的想法:

我把函數在父頁面:

<script type="text/javascript"> 
function send() { 
document.getElementById('slidecaption').innerHTML = 
frame1.document.getElementById('slidecaption').innerHTML} 
</script> 

我把IFRAME文檔中調用:

<body onload="parent.send();"> 

問候, 斯科特

+0

其中是frame1在js中聲明? – BNL

+0

正如你所看到的,我對JavaScript沒有什麼理解。你上面看到的是我目前在那裏得到的所有js。它由幾個例子拼湊而成。我遇到的所有內容似乎都是在沒有任何聲明的情況下使用iframe名稱值。 – sharcupine

+0

你是否有控制框架中的文檔,如果**是**,你可以在'body'的'onload'事件中放置一個函數?如果你能做到這些,我認爲你可以以相反的方式做到這一點。將一個onload事件放在frame doc和一個函數中,該函數獲取對象的值並將其作爲父文件發送給父文檔,如下所示:parent.document.getElementbyId('receiver')。innerHTML = document.getElementById('目標')。innerHTML' – 2011-09-22 19:48:49

回答

0

我不確定這是你需要做的唯一事情,但你一定需要從DOM中檢索frame1。

<script type="text/javascript"> 
    var frame1 = document.getElementById('frame1'); 
    var caption = frame1.contentWindow.document.getElementById('slidecaption'); 
    document.write(caption); 
</script> 
+0

謝謝。我猜還有其他問題:聲明frame1導致「錯誤:frame1.document未定義」。 – sharcupine

+0

您是否將呼叫添加到contentWindow? – BNL

+0

對不起,錯過了。我添加了它,現在又返回「null」。 – sharcupine