2013-03-06 82 views
0

我將頁面特定的html加載到包含我試圖用jquery引用的對象的iFrame中。當頁面最初加載時,按預期發現元素,但是如果我進入新頁面並返回或刷新頁面,則在我清除緩存並重新加載頁面之前,元素將不再一致地找到(經常失敗)。JQuery無法在初始加載後在iFrame中查找元素

我試過了querySelectorAll和getElementsByClassName的不同組合,但它們只能在第一次使用時始終如一地工作。它看起來像是一個競爭條件,但爲什麼它會在第一次工作?

這個問題聽起來很熟悉嗎?

+0

您是否已嘗試使用Firefox Firebug擴展或Firefox開發人員工具調試頁面中的iFrame元素? 你在哪裏引用了iFrame對象以及如何創建iFrame?通過jQuery或以「標準方式」,通過HTML?嘗試看看http://stackoverflow.com/questions/205087/jquery-ready-in-a-dynamically-inserted-iframe – deste 2013-03-06 22:02:12

回答

0

它確實是一個競爭條件,動態元素還沒有可供參考。在我的情況下,iFrame元素是使用ExtJS創建的,所以它需要這個額外的偵聽器,所以我可以在加載之後採取行動(把這個延遲放在afterrender來自另一篇文章,我需要找到並給予功勞);

afterrender: function (cmp) { 
    var element = cmp.getEl(); 
    element.on('load', function() { 
     renderer.onIFrameReady(); 
    }); 
} 
相關問題