在IE中的子iframe内动态附加HTML

时间:2017-01-22 07:52:14

标签: javascript jquery html iframe

我的HTML中有一个iframe,如下所示;

<iframe id="ifrContainer"></iframe>

我想在此iframe中动态附加表单元素。我有以下代码来做到这一点;

var iframeContainer = document.getElementById('ifrContainer');
var innerDoc = (iframeContainer.contentDocument) ? iframeContainer.contentDocument : iframeContainer.contentWindow.document;
innerDoc.body.innerHTML += '<form id="myForm"></form>';

以上代码在Chrome中运行良好。但在IE中失败了。

它给了innerDoc.body.innerHTML错误(说它是null)

不确定我做错了什么。

注意:我想写入iframe&amp;不读内容

这是在我的Ember应用程序中调用该函数的方法(该函数具有iframe代码)

Ember.run.scheduleOnce('afterRender', this, function() {
    this.myIframeFunc();
})

1 个答案:

答案 0 :(得分:0)

出于某些原因,在IE中只能在document.readyState == 'complete'

之后才能实现

这适用于我。

<iframe id="ifrContainer"></iframe>

<script>
    var iframeContainer = document.getElementById('ifrContainer');
    var innerDoc = iframeContainer.contentDocument;
    document.addEventListener('readystatechange', function() {
        if (document.readyState == 'complete') {
            innerDoc.body.innerHTML += '<form id="myForm"><input value=1></form>';
        }
    });
</script>