getElementsByTagName为null或未定义,仅在IE中 - 并且仅在函数中的一个特定位置

njj*_*j56 3 javascript getelementsbytagname

可能重复:
IE中的getElementById.contentDocument错误

下面列出的是我的javascript代码.它的作用是在整个文档中搜索所有iframe,然后在iframe中搜索所有图像.父框架和子框架都是我在同一域中的代码.代码在chrome,FF和safari中运行良好,但不适用于IE.这是我得到的错误.

Microsoft JScript runtime error: Unable to get value of the property 'getElementsByTagName': object is null or undefined
Run Code Online (Sandbox Code Playgroud)

这是我的代码.

<script language="javascript">
var IMGmatches = [];
var IMGelems = document.getElementsByTagName("img");
var iframes = document.getElementsByTagName('iframe');
var l = IMGelems.length;
var m = iframes.length;
var i;
var j;
for (i = 0; i < l; i++) IMGmatches[i] = IMGelems[i];
for (j = 0; j < m; j++) {
    IMGelems = iframes[j].contentDocument.getElementsByTagName("img");
    l = IMGelems.length;
    for (i = 0; i < l; i++) {
        IMGmatches.push(IMGelems[i]);
        document.getElementById("HM").src = IMGelems[i].src;
        alert('IMGelems[i].src : ' + IMGelems[i].src);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误发生在行:

IMGelems = iframes[j].contentDocument.getElementsByTagName("img");
Run Code Online (Sandbox Code Playgroud)

有没有人看到或知道为什么只能在IE中发生这种情况?谢谢您的帮助.

Flo*_*ine 5

来自MDN文档:

内联框架的嵌套浏览上下文中的活动文档.Internet Explorer 7及更早版本不支持; 使用contentWindow.document来代替.