我将页面特定的html加载到iFrame中,其中包含我试图用jquery引用的对象。当页面最初加载时,元素会按预期找到,但是如果我转到新页面并返回或刷新页面,则不再一致地找到元素(更频繁地失败,然后更新),直到我清除缓存并重新加载页面。
我尝试了querySelectorAll和getElementsByClassName的不同组合,但它们只是第一次一致地工作。这看起来像是竞争条件,但为什么它会第一次工作?
这个问题对任何人来说都很熟悉吗?
答案 0 :(得分:0)
事实证明这是一种竞争条件,其中动态元素尚未可供参考。在我的情况下,iFrame元素是使用ExtJS创建的,所以它需要这个额外的监听器,所以我可以在加载后采取行动(将此延迟推迟到另一个帖子,我需要找到并给予信任);
afterrender: function (cmp) {
var element = cmp.getEl();
element.on('load', function () {
renderer.onIFrameReady();
});
}