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
Barbara Streisandoriginal
2024-12-08 11:38:11229parcourir

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;

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;
    }
}

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!

Déclaration:
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
Article précédent:Réagissez face à face !Article suivant:Réagissez face à face !