3

重複の可能性:
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

そして、ここに私のコードがあります。

<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);
    }
}

エラーは次の行で発生しています。

IMGelems = iframes[j].contentDocument.getElementsByTagName("img");

これがIEでのみ発生する理由を誰かが見たり知ったりしていますか? ご協力ありがとうございました。

4

1 に答える 1

5

MDN ドキュメントから:

インライン フレームのネストされたブラウジング コンテキスト内のアクティブなドキュメント。Internet Explorer 7 以前ではサポートされていません。代わりに使用contentWindow.documentします。

于 2012-06-22T13:00:14.017 に答える