我的模板中有一个 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/