web-dev-qa-db-fra.com

Vérifiez si la fenêtre parent est iframe ou non

Comment savoir à partir d'une page dans un iframe, si le parent lui-même se trouve également dans un iframe?

Explication:

Ma page d'accueil home.html contient un iframe

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

Je dois détecter si home.html (ie: parent de sample.html) est dans un iframe.

Code en sample.html:

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

Ma question n'est pas un doublon. C'est un cas différent.

51
Mohan Ram

Cela est vrai si une fenêtre n'est pas un cadre/iframe:

if(self==top)

Si vous aimez voir si la fenêtre parente de la fenêtre donnée est un cadre, utilisez:

if(parent==top)

Il s'agit d'une simple comparaison de top (la fenêtre la plus haute de la hiérarchie des fenêtres) et d'un autre objet window (self ou parent).

104
Dr.Molle

Vérifier si window.frameElement n'est pas nul et voyez si sa propriété nodeName est "IFRAME":

var isInIframe = window.frameElement && window.frameElement.nodeName == "IFRAME";
34
Pink Duck
var isInIFrame = (window.location != window.parent.location);
if(isInIFrame==true){
    // iframe
}
else {
    // no iframe
}
24
Sumith Harshan