Heim > Web-Frontend > js-Tutorial > Wie kann ich feststellen, ob eine Webseite in einem iFrame oder einem Browserfenster geladen wird?

Wie kann ich feststellen, ob eine Webseite in einem iFrame oder einem Browserfenster geladen wird?

Barbara Streisand
Freigeben: 2024-12-08 11:38:11
Original
162 Leute haben es durchsucht

How Can I Determine if a Webpage is Loaded in an iFrame or a Browser Window?

Bestimmen, ob eine Webseite in einem iFrame oder Browserfenster geladen wird

Bei der Entwicklung einer iframe-basierten Anwendung muss unterschieden werden, ob Die Webseite wird innerhalb eines Iframes oder direkt im Browserfenster geladen. Dieses Verständnis ermöglicht maßgeschneiderte Funktionalität für verschiedene Szenarien.

Erkennen des Ladekontexts

Der bewährte Ansatz beinhaltet die Verwendung der Eigenschaften window.self und window.top:

const inIframe = () => window.self !== window.top;
Nach dem Login kopieren

window.self bezieht sich auf das aktuelle Fensterobjekt, während sich window.top auf das Fenster der obersten Ebene bezieht. Wenn diese beiden Objekte nicht identisch sind, weist dies darauf hin, dass die Webseite innerhalb eines Iframes geladen wird.

Adressierung der Browserkompatibilität

In neueren Browsern wird diese Methode weitgehend unterstützt. Dies ermöglicht eine genaue Iframe-Erkennung. Beim Umgang mit älteren Browsern ist jedoch Vorsicht geboten, da einige aufgrund von Sicherheitsbeschränkungen möglicherweise den Zugriff auf window.top blockieren.

Alternativer Ansatz

Um Browser-Inkonsistenzen zu berücksichtigen , ein alternativer Ansatz beinhaltet die Verwendung eines Try-Catch-Blocks:

function inIframe () {
    try {
        return window.self !== window.top;
    } catch (e) {
        return true;
    }
}
Nach dem Login kopieren

Wenn der Zugriff auf window.top verweigert wird, fängt der Catch-Block das ab Ausnahme und geben Sie „true“ zurück, was darauf hinweist, dass die Webseite wahrscheinlich innerhalb eines Iframes geladen wird.

Das obige ist der detaillierte Inhalt vonWie kann ich feststellen, ob eine Webseite in einem iFrame oder einem Browserfenster geladen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage