2011-09-06 87 views
0

我有一个iframe,其中包含一个页面,我用div来加载一些图。可悲的IE浏览器不会找到与函数document.getElementById的div,但Firefox将没有问题。任何暗示最新情况如何?由于IE的iframe与getElementById问题

<iframe id="ganttFrame" src="data.html"> 

data.html:

<div class="gantt" id="GanttChartDIV"></div> 
<script>  
    var g = new JSGantt.GanttChart('g',document.getElementById('GanttChartDIV'), 'day'); 
</script> 
+0

您确定在加载iframe后尝试访问框架吗? - 另外,IE在历史上有一个getElementById()的错误,如果在DOM中具有更高的元素并且具有相同的值的'name'属性......你有可能在iframe之前有一个同名的元素吗? – scunliffe

+0

是的,我想要访问iframe中的div。检查两次,名称是唯一的。谢谢。 – Cesar

回答

2

我想你需要得到这样的元素,因为它实际上是一个单独的窗口的一部分。

document.getElementById('ganttFrame').document.getElementById('GanttChartDIV') 
//      ^^^get the iframe's document... the the ^^^^ 

,或者您可以使用(如果您的IFRAME有name属性设置为ganttFrame):

window.frames['ganttFrame'].document.getElementById('GanttChartDIV') 

从理论上讲,每一个IFRAME 可以包含完全相同的副本ID的,因为它是一个单独的文件,因此为了正确导航它,你需要获得iframe,然后在那个“窗口”中获得子div。