【问题标题】:IE iframe problem with getElementByIdgetElementById 的 IE iframe 问题
【发布时间】:2011-09-06 20:49:27
【问题描述】:

我有一个 iframe,其中包含一个带有 div 的页面,我用它来加载一些图形。遗憾的是,IE 无法找到带有 document.getElementById 函数的 div,但 firefox 将毫无问题。任何提示发生了什么?谢谢

<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>

【问题讨论】:

  • 您确定要在 iframe 加载后访问该框架吗? - 此外,如果 DOM 中存在具有相同值的 name 属性的元素,IE 历来存在 getElementById() 的错误...在 iframe 之前有没有相同名称的元素的机会?
  • 是的,我正在尝试访问 iframe 中的 div。查了两次,名字是唯一的。谢谢。

标签: internet-explorer iframe getelementbyid


【解决方案1】:

我认为您需要像这样获取元素,因为它实际上是单独窗口的一部分。

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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-16
    • 2010-10-07
    • 2014-10-12
    • 2012-12-16
    • 2014-08-31
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多