Maison > interface Web > js tutoriel > Comment puis-je déterminer si une page Web est chargée dans un iFrame ou une fenêtre de navigateur ?

Comment puis-je déterminer si une page Web est chargée dans un iFrame ou une fenêtre de navigateur ?

Barbara Streisand
Libérer: 2024-12-08 11:38:11
original
162 Les gens l'ont consulté

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

Déterminer si une page Web est chargée dans un iFrame ou une fenêtre de navigateur

Lors du développement d'une application basée sur un iframe, il devient nécessaire de distinguer si la page Web est chargée dans une iframe ou directement dans la fenêtre du navigateur. Cette compréhension permet des fonctionnalités personnalisées pour différents scénarios.

Détection du contexte de chargement

L'approche approuvée implique l'utilisation des propriétés window.self et window.top :

const inIframe = () => window.self !== window.top;
Copier après la connexion

window.self fait référence à l'objet fenêtre actuel, tandis que window.top fait référence à la fenêtre de niveau supérieur. Si ces deux objets ne sont pas identiques, cela indique que la page Web est chargée dans une iframe.

Adressage de la compatibilité des navigateurs

Dans les navigateurs récents, cette méthode est largement prise en charge, permettant une détection précise des iframes. Cependant, la prudence est de mise lorsqu'il s'agit d'anciens navigateurs, car certains peuvent bloquer l'accès à window.top en raison de restrictions de sécurité.

Approche alternative

Pour tenir compte des incohérences du navigateur , une approche alternative consiste à utiliser un bloc try-catch :

function inIframe () {
    try {
        return window.self !== window.top;
    } catch (e) {
        return true;
    }
}
Copier après la connexion

Si l'accès à window.top est refusé, le bloc catch interceptera l'exception et retournera vrai, indiquant que la page Web est probablement chargée dans une iframe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal