2011-09-22 158 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