2011-03-11 7 views
6

Próbowałem wielu właściwości okna, aby sprawdzić, czy strona w elemencie iframe może stwierdzić, czy jest w elemencie iframe. Próbowałem:Sprawdź, czy strona jest w ramce iframe dla przeglądarki Google Chrome

if(top.location!= self.location) //doesn't work in Google Chrome 
    alert("I am in an iframe!") 

To nie działa (działa we wszystkich przeglądarkach oprócz Chrome). Piszę usercript dla przeglądarki Firefox i Chrome, ale Chrome naprawdę się nie zachowuje. Czy istnieje sposób sprawdzenia, czy Chrome może wykryć, czy strona ma element iframe?

+0

http://jsfiddle.net/hpVec/ Wydaje się działać prawidłowo w Chrome. –

+0

var in_iframe = (window.location! = Window.parent.location); –

Odpowiedz

15

Działa to dla ramek chciałbym ją założyć, współpracuje również z iFrames

if (top === self) { 
    // no frame 
} else { 
    //frame 
} 
+0

To jest niesamowite (działa)! Dzięki – user654628

+0

Uwaga: To nie działa w ie8 – iturgeon

0

window.frameElement jest obsługiwana w nawet najbardziej starożytnych przeglądarek. Określa element iframe, osadzenie lub obiekt, w którym osadzone jest bieżące okno.

if(!!window.frameElement){ 
    //code to be executed if we are in an iframe 
} 

More here.