0

我将页面特定的 html 加载到 iFrame 中,该 iFrame 包含我试图用 jquery 引用的对象。当页面最初加载时,会按预期找到元素,但是如果我转到新页面并返回或刷新页面,则在清除缓存并重新加载页面之前,不再始终如一地找到元素(失败的频率更高)。

我尝试了 querySelectorAll 和 getElementsByClassName 的不同组合,但它们只能在第一次时始终如一地工作。这似乎是一种竞争条件,但为什么它第一次会起作用?

这个问题对任何人来说都很熟悉吗?

4

1 回答 1

0

事实证明,这确实是一种竞争条件,其中动态元素尚不可用于参考。在我的例子中,iFrame 元素是使用 ExtJS 创建的,所以它需要这个额外的监听器,这样我就可以在加载后采取行动(把这个延迟放在 afterrender 来自另一个我需要找到并归功于的帖子);

afterrender: function (cmp) {
   var element = cmp.getEl();
   element.on('load', function () {
       renderer.onIFrameReady();
   });
}
于 2013-04-25T17:03:14.873 回答