2013-03-06 62 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(); 
    }); 
} 
相关问题