首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >body.onload会等待IFrames吗?

body.onload会等待IFrames吗?
EN

Stack Overflow用户
提问于 2009-06-05 17:34:34
回答 3查看 8K关注 0票数 8

我知道onload事件在触发之前等待页面资源加载-图像、样式表等。

但是,这是否包括页面中的IFrames?换句话说,能保证所有子帧的onload总是在父帧之前触发吗?

另外,如果浏览器之间的行为不同,请让我知道。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-05 17:39:15

正如我在我的页面上看到的,每个iframe都有独立的onload,top-frame onload不会等待iframe触发。

我在我的网站上有gif/png横幅,有时加载非常慢,所以我把它们放到iframe中,这使得整个网站和onload事件工作得更快。

票数 3
EN

Stack Overflow用户

发布于 2009-06-05 17:45:41

如果你想做这样的事情,你需要为iframe添加一个onload处理程序。你可以用jQuery很好地做到这一点:

代码语言:javascript
复制
  <iframe src="http://digg.com"></iframe>
  <script>
    var count = $('iframe').length;
    $(function() {
      // alert('loaded'); // will show you when the regular body loads
      $('iframe').load(function() {
        count--;
        if (count == 0)
            alert('all frames loaded');
      });
    });
  </script>

这将在加载所有帧时发出警报。

请参见示例:

http://jsbin.com/azilo

票数 7
EN

Stack Overflow用户

发布于 2010-12-31 04:09:47

或者普通的javascript应该可以工作..

代码语言:javascript
复制
function checkIframes() {
   if(!i) { i = 0; }
   if(document.getElementsByTagName('iframe')[i]) {
      document.getElementsByTagName('iframe')[i].onload = function () { i++; checkIframes(); }
   }
   else { yourFunctionInHere(); }
}

还没有真正测试过,但应该可以工作...然后用document.onload = function() { checkIframes(); }引用它

我真的不喜欢像jQuery这样的库,因为到目前为止,我发现用普通的javascript可以用更少的代码实现更多的功能。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/957133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档