JQuery - Wait for two iframes to load

后端 未结 3 613
渐次进展
渐次进展 2020-12-21 23:14

I have a button that loads two different pages in two iframes. I need to wait for those loads to complete (like ready(), don\'t care about images and other content) and the

相关标签:
3条回答
  • 2020-12-21 23:52

    One way would be for the iFrame content to signal that it is ready. Here is a simplistic way to do this:

    Main Page

    var status = [false, false];
    
    function doneLoading(index)
    {
       status[index] = true;
       if (status[1] && status[2])
          alert("Both iframes are done loading");
    }
    

    In each iFrame

    $(document).ready(function() { parent.doneLoading(1) }); // or 2
    
    0 讨论(0)
  • 2020-12-22 00:07

    Using $.when() will help you (jQuery 1.5 and higher). For example:

    function doAjax(){
       return $.get('foo.htm');
    }
    
    function doMoreAjax(){
       return $.get('bar.htm');
    }
    
    $.when( doAjax(), doMoreAjax() )
       .then(function(){
          console.log( 'I fire once BOTH ajax requests have completed!' );
       })
       .fail(function(){
          console.log( 'I fire if one or more requests failed.' );
       });
    
    0 讨论(0)
  • 2020-12-22 00:10

    In my opinion, the safest solution might be to have a parent iframe that would embedd both iframes and wait for the entire page (the parent page) to load :

    $(parent).load(function(){
       ... //if you get there then the 2 iframes are already loaded
    }
    

    The drawback is that it's a lot of iframes

    0 讨论(0)
提交回复
热议问题