2011-09-06 65 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。