Bei der Webentwicklung kann es notwendig sein, festzustellen, ob eine Webseite in einen iFrame oder direkt in das Browserfenster geladen wird . Diese Unterscheidung kann Auswirkungen auf das Verhalten und die Funktionalität der Webseite haben.
Eine Methode zur Identifizierung dieser Unterscheidung ist der Vergleich der Objekte window.self und window.top. Bei einer direkt in das Browserfenster geladenen Webseite verweisen diese beiden Objekte auf dasselbe Fensterobjekt. Wenn window.self jedoch innerhalb eines Iframes geladen wird, verweist es auf das Iframe-Fenster, während window.top auf das übergeordnete Fenster verweist.
Um dies auf robuste Weise zu überprüfen, kann man den folgenden Code verwenden:
const inIframe = () => window.self !== window.top;
Es ist jedoch wichtig zu beachten, dass dieser Ansatz, obwohl er in den meisten Browsern zuverlässig ist, durch ursprungsübergreifende Einschränkungen beeinträchtigt werden kann, insbesondere im Internet Explorer. Daher ist es wichtig, mit potenziellen Fehlern sorgfältig umzugehen.
Update (2024):
Laut der Dokumentation zum Cross-Origin-Script-API-Zugriff, window.self und window .top gehören zu den zulässigen Cross-Origin-Eigenschaften. Dies legt nahe, dass der folgende Code eine konsistentere und zuverlässigere Möglichkeit zur Erkennung von iFrames bieten sollte:
const inIframe = () => window.self !== window.top;
Das obige ist der detaillierte Inhalt vonWird meine Webseite direkt oder in einem iFrame geladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!