Как загрузить iframe после другого загруженного iframe - PullRequest
1 голос
/ 05 ноября 2011

У меня есть массив URL, и я хочу создать один iframe для каждого URL, который у меня есть.Но я хочу создать и загрузить следующий iframe, только когда предыдущий был полностью загружен.

Это функция, которая создает iframe:

function loadSubsequencePages(links){
var id = document.getElementsByTagName("iframe").length;

    for(var i=0; i<links.length;i++){
        var frame = document.createElement("iframe");
        frame.setAttribute("id","frame"+id);
        frame.setAttribute("src","about:blank");
        document.getElementById('frames').appendChild(frame);
        changeLoc(document.getElementById("frame"+id),links[i].href);
    }

}

Я хочу перейти к следующемуя только тогда, когда фактический iframe, который я создаю, был загружен.

это функция, которая изменяет URL:

function changeLoc(frm,loc) {
        frm.webNavigation.loadURI(loc, 
                                frm.webNavigation.LOAD_FLAGS_NONE,
                                null, null, null
                              );
    }

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

Это зависит.

  1. У вас есть контроль над страницами, показанными в IFRAME s?
  2. Они находятся в том же домене, что и страница хостинга?

Существует четыре сценария:

  • Если они находятся в одном домене , вы можете получить доступ к контенту через JavaScript.

  • Если они находятся в том же домене , и вы можете изменить загруженные страницы, вы можете сообщить родительскому фрейму, когда событие onload запускается со страницы, загруженной в IFRAME.

  • Если они не находятся в одном домене, и вы можете изменить загруженную страницу, ограничения безопасности заблокируют прямую связь.Но вы можете пропинговать центральный репозиторий на сервере с загруженной страницы, когда событие onload срабатывает

  • Если они не в одном домене, и вы не можетеизмените загруженную страницу ... Ну, у вас проблемы ... :) Вы не сможете проверить, когда страницы закончили загружаться .... Ну .. Вы можете создать некрасивый таймер загрузки страницс заданным интервалом ... Но не говори никому, что я тебе так сказал ...;)

1 голос
/ 05 ноября 2011

Если iframes указывают на URL, который является другим доменом, все, что вы можете сделать, это поместить событие onload в свой iframe - оно сообщит вам, когда Iframe начнет загружаться, но вы никогдабыть в состоянии сказать, когда загрузка завершена из-за одной и той же политики происхождения.В этом случае внутренняя страница изолирована от страницы хостинга.

Если фреймы указывают на тот же домен , вы можете вставить какой-нибудь код document.ready на страницу, которая может затем вызвать функцию JavaScript на родительской странице, объявляя, что она закончила загрузку.

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