在Ember应用程序中检查readyState

时间:2017-01-23 12:01:25

标签: javascript jquery ember.js

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

<iframe id="iframeContainer" src="javascript:;"></iframe>

在相应的路线中,我希望动态添加一些表格。我想让它在IE,Firefox和&amp;铬。但是,readyState中的代码根本不会被触发。不确定我是否在正确的位置添加支票?

didTransition: function() {
    var self = this;
    Ember.run.scheduleOnce('afterRender', this, function() {
        document.addEventListener('readystatechange', function() {
            if (document.readyState == 'complete') {
                var iframeContainer = document.getElementById('iframeContainer');
                var innerDoc = (iframeContainer.contentDocument) ? iframeContainer.contentDocument : iframeContainer.contentWindow.document;
                innerDoc.body.innerHTML += '<form id="myForm"></form>';
                innerDoc.getElementById("myForm").submit();
            }
        });
    })
}

1 个答案:

答案 0 :(得分:1)

didTransition: function() {
var self = this;
Ember.run.scheduleOnce('afterRender', this, function() {
        if (document.readyState == 'complete') {
            var iframeContainer = document.getElementById('iframeContainer');
            var innerDoc = (iframeContainer.contentDocument) ? iframeContainer.contentDocument : iframeContainer.contentWindow.document;
            innerDoc.body.innerHTML += '<form id="myForm"></form>';
            innerDoc.getElementById("myForm").submit();
        }
})

}

事件监听器永远不会触发,如果您要使用didTransation,那么当您加入此路线时,将会加以注意。