JQuery - дождитесь загрузки двух фреймов - PullRequest
0 голосов
/ 15 марта 2011

У меня есть кнопка, которая загружает две разные страницы в двух фреймах. Мне нужно дождаться завершения загрузки (например, ready (), не заботиться об изображениях и другом контенте), а затем запустить другое действие. Как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 15 марта 2011

Один из способов заключается в том, что контент iFrame может сигнализировать о готовности.Вот упрощенный способ сделать это:

Главная страница

var status = [false, false];

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

В каждом кадре

$(document).ready(function() { parent.doneLoading(1) }); // or 2
4 голосов
/ 15 марта 2011

Использование $. When () поможет вам (jQuery 1.5 и выше).Например:

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.' );
   });
1 голос
/ 24 мая 2011

На мой взгляд, самым безопасным решением может быть наличие родительского iframe, который будет встраивать оба iframe и ждать загрузки всей страницы (родительской страницы):

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

Недостаток в том, что в нем много фреймов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...