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!