Javascript 初始加载后,JQuery在iFrame中找不到元素
我将特定于页面的html加载到一个iFrame中,其中包含我试图使用jquery引用的对象。当页面最初加载时,元素会按预期找到,但如果我转到新页面并返回或刷新页面,则在清除缓存并重新加载页面之前,元素将不再一致地找到(失败的频率更高) 我尝试过querySelectorAll和getElementsByClassName的不同组合,但它们仅在第一次使用时才能保持一致。这看起来像是一个比赛条件,但为什么第一次它会起作用呢Javascript 初始加载后,JQuery在iFrame中找不到元素,javascript,jquery,caching,iframe,Javascript,Jquery,Caching,Iframe,我将特定于页面的html加载到一个iFrame中,其中包含我试图使用jquery引用的对象。当页面最初加载时,元素会按预期找到,但如果我转到新页面并返回或刷新页面,则在清除缓存并重新加载页面之前,元素将不再一致地找到(失败的频率更高) 我尝试过querySelectorAll和getElementsByClassName的不同组合,但它们仅在第一次使用时才能保持一致。这看起来像是一个比赛条件,但为什么第一次它会起作用呢 这个问题对任何人来说都很熟悉吗?事实证明,这确实是一个动态元素尚未提供参考的
这个问题对任何人来说都很熟悉吗?事实证明,这确实是一个动态元素尚未提供参考的竞赛条件。在我的例子中,iFrame元素是使用ExtJS创建的,因此它需要这个额外的监听器,这样我就可以在加载后采取行动(将这个延迟放到afterrender中来自另一篇文章,我需要找到并给予赞扬)
您是否已经尝试过使用Firefox Firebug扩展或Firefox开发者工具调试页面中的iFrame元素?在哪里引用iFrame对象以及如何创建iFrame?用jQuery还是用“标准方式”,用html?试着看一看
afterrender: function (cmp) {
var element = cmp.getEl();
element.on('load', function () {
renderer.onIFrameReady();
});
}