6

次のコードで iframe の contentDocument と contentWindow にアクセスしようとしています。しかし、どちらもヌルです。

    var iframe = document.createElement('iframe');
    this.get__domElement$i().appendChild(iframe);
    if (iframe.contentDocument) {
         iframe.contentDocument.write("Hello");
     }
    else if (iframe.contentWindow) {
         iframe.contentWindow.document.body.innerHTML = "Hello";
     }

誰かがこれで何が悪いのか教えてもらえますか? ありがとう

Document.Body.AppendChild(iframe) を実行すると、contentDocument と contentWindow は null ではありません。

iframe を div に追加すると何が問題なのか誰か教えてもらえますか?

どうもありがとう。

4

1 に答える 1

4

これが少し遅れていることは知っていますが、これを調査していて、あなたの質問に出くわしました:

iframe を追加しようとしたときに、iframe を追加しようとしていた div がまだロードされていなかったため、あなたと同じエラーが発生しました。div がロードされている場合、コードは機能します。

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <div id='test' >

        </div>
        <script>
            var iframe = document.createElement('iframe');
            var myDiv = document.getElementById('test');
            myDiv.appendChild(iframe);
            if (iframe.contentDocument) {
                iframe.contentDocument.write("Hello");
            }
            else if (iframe.contentWindow) {
                iframe.contentWindow.document.body.innerHTML = "Hello";
            }
        </script>
    </body>
</html>

これは、この作業コードを含む jsFiddleと、エラーを与えるタグを含むTypeError: Cannot call method 'appendChild' of nullの jsFiddleです。

于 2013-07-21T23:17:56.273 に答える