按名称获取IFRAME元素不再起作用了?

时间:2013-06-05 16:20:18

标签: javascript

我有这个非常古老的JS在IE8中工作,这样做:

window.document.getElementById("frameModalityList")

以下是我想要的内容:

<iframe name="frameModalityList" src="iframe_advanced_list.jsp" frameborder="0" marginheight="0" marginwidth="0" class="advanced_list" width="100%" height="300"></iframe>

现在,当我在IE9 / 10 Chrome中试用它时,我收到错误:

  

SCRIPT5007:发生了捕获异常:无法获取未定义或空引用的属性'contentWindow'

获取IFRAME元素的新方法是什么?

2 个答案:

答案 0 :(得分:2)

新编辑:由于旧版本的Internet Explorer中存在一些可能的错误(或打算),旧代码可以正常工作。

从此Beware of id and name attribute mixups when using getElementById in Internet Explorer

当使用getElementById通过id属性获取对元素的引用时,Internet Explorer for Windows(以及某些版本的Opera)也将匹配name属性包含相同值的元素。 < / p>

首先回答:

您是id提取的,但您未在id元素中设置iframe

window.document.getElementById("frameModalityList")

将名称属性更改为ID iframe

<iframe id="frameModalityList" src="iframe_advanced_list.jsp" frameborder="0" marginheight="0" marginwidth="0" class="advanced_list" width="100%" height="300"></iframe>

答案 1 :(得分:1)

因为你没有设置id但是名字试试这个:

window.document.getElementByName("frameModalityList")

或将id插入html:

<iframe id="frameModalityList" name="frameModalityList" src="iframe_advanced_list.jsp" frameborder="0" marginheight="0" marginwidth="0" class="advanced_list" width="100%" height="300"></iframe>

window.document.getElementById("frameModalityList")