【问题标题】:JQuery fails to find elements in iFrame after initial load初始加载后,JQuery 无法在 iFrame 中找到元素
【发布时间】:2013-02-21 22:08:22
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否已经尝试使用 Firefox Firebug 扩展或 Firefox 开发人员工具调试页面中的 iFrame 元素?您在哪里引用 iFrame 对象以及如何创建 iFrame?通过 jQuery 或以“标准方式”,通过 html?试试看stackoverflow.com/questions/205087/…

标签: javascript jquery caching iframe


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    相关资源
    最近更新 更多