2017-01-23 109 views
1

我的模板中有一個iframe,如下所示;在Ember應用程序中檢查readyState

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

在相應的路由中,我想要一些表單被動態地添加。我希望它能夠在Chrome,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(); 
      } 
     }); 
    }) 
} 
+0

爲什麼你需要addEventListener? –

回答

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很會照顧,當你來到這條路線表格將被添加的事件監聽器永遠不會觸發。

+0

Thx很多。在Chrome中完美運行。在IE中,我在顯示iframe時出現了一些錯誤。不確定這可能與跨域(在本地主機URL上測試)有關 無法顯示此頁面 •確保網頁地址//ieframe.dll/dnserrordiagoff.htm#正確無誤。 – testndtv

相關問題