javascript - 检查 Ember 应用程序中的 ReadyState

标签 javascript jquery ember.js

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

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

在相应的路由中,我希望动态附加一些表单。我希望它能在 IE、Firefox 和 Chrome 中运行。然而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();
            }
        });
    })
}

最佳答案

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,事件监听器永远不会触发,它会注意当您进入此路线时会添加表单。

关于javascript - 检查 Ember 应用程序中的 ReadyState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805905/

相关文章:

ember.js - 带有动态过滤器/搜索条件的 Ember 路由

jquery - 为什么 jQuery 的 $.get() 不将脚本元素插入到 DOM 中?

javascript - jQuery 文件上传 - 单次上传多次发送数据

javascript - 如何根据文本框的输入在div中生成一系列图像

ember.js - 在 ember-cli 中测试扩展核心 ember 对象

routes - Ember.js:路由器/路由和StateManager/状态之间有什么区别?

javascript - Grunt 任务在我的控制台中生成一个循环

javascript - 为什么我们不能在 setTimeout 上调用和应用?

php - 如何将 PHP、Javascript 和 HTML 文档合并为一个?

javascript - 单击链接播放音频剪辑