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 不为空。

当我将 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和另一个带有错误标记的 jsFiddle TypeError: Cannot call method 'appendChild' of null

于 2013-07-21T23:17:56.273 回答