Есть ли способ проверить, загружен ли html в Iframe

Моя проблема в том, что у меня есть два html-файла, например, 1.html и 2.html. Содержимое файлов 1.html. Он состоит из Iframe. Источник Iframe — 2.html. 2.html Это образец html-страницы.

Мой вопрос заключается в том, что я хочу проверить, загружается ли 2.html в Iframe или загружается в отдельный браузер напрямую, не помещая его в Iframe. Проверка должна выполняться только из 2.html.

Любые предложения друзья. Заранее спасибо.


person AmGates    schedule 19.03.2012    source источник
comment
Возможный дубликат stackoverflow .com/questions/4594492/   -  person Paul Bruno    schedule 19.03.2012
comment
Вы можете использовать событие загрузки в iframe. но проблема в том, что событие onload не срабатывает в т.е. браузере. Чтобы проверить загрузку файла, вы можете использовать запрос ajax.   -  person Kunal Vashist    schedule 19.03.2012


Ответы (4)


при загрузке в iframe window.parent указывает на родительское окно, однако при загрузке в отдельном окне window.parent указывает на само окно:

var loadinInIframe = window.parent != window;
person Sepehr    schedule 19.03.2012

с помощью javascript вы можете проверить, используя document.location, если window.parent.location и window.location, если родительское местоположение не является вашим местоположением приложения, тогда вы можете быть iFramed

person Ibrahim    schedule 19.03.2012

Привяжите функцию к событию onload iframe и установите загруженную переменную на родительской странице.

В фрейме

window.onload = function() {
   parent.iframeLoaded = true;
}

На родительской странице просто объявите переменную для хранения значения

var iframeLoaded = false;

Теперь вы можете проверить эту переменную, когда вам нужно, с родительской страницы, например

if(iframeLoaded) {
    // Do something
}
person Starx    schedule 19.03.2012

if (top === self) { not in a frame } else { in a frame }

Top и self являются объектами окна (наряду с parent), поэтому вы видите, является ли ваше окно верхним окном.

Кредит на это. Надеюсь, это поможет.

person shams.haq    schedule 19.03.2012