我有这个非常古老的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元素的新方法是什么?
答案 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")