Проверьте, является ли родительское окно iframe или нет - PullRequest
50 голосов
/ 04 января 2011

Как я могу узнать со страницы внутри iframe, если родитель тоже находится в iframe?

Пояснение:

Моя домашняя страница home.html содержит iframe

<iframe src="sample.html"></iframe>

Мне нужно определить, находится ли home.html (то есть: родительский элемент sample.html) в пределах iframe.

Код в sample.html:

if(self==window)
{
    alert('home.html is not in iframe');
}
else
{
    alert('home.html is in iframe');
}

Мой вопрос не является дубликатом. Это другой случай.

Ответы [ 3 ]

102 голосов
/ 04 января 2011

Это верно, если окно не является фреймом / iframe:

if(self==top)

Если вы хотите увидеть, является ли родительское окно данного окна фреймом, используйте:

if(parent==top)

Это простое сравнение top (самое верхнее окно иерархии окон) и другого оконного объекта (self или parent).

34 голосов
/ 11 июня 2012

Проверьте, не является ли window.frameElement ненулевым, и посмотрите, является ли его свойство nodeName равным «IFRAME»:

var isInIframe = window.frameElement && window.frameElement.nodeName == "IFRAME";
23 голосов
/ 04 мая 2012
var isInIFrame = (window.location != window.parent.location);
if(isInIFrame==true){
    // iframe
}
else {
    // no iframe
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...