Maison >interface Web >js tutoriel >Comment puis-je obtenir l'URL de la page parent à partir d'un iFrame sur un sous-domaine différent ?

Comment puis-je obtenir l'URL de la page parent à partir d'un iFrame sur un sous-domaine différent ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 22:06:02927parcourir

How Can I Get the Parent Page's URL from an iFrame on a Different Subdomain?

Accéder à l'URL parent à partir d'iFrame : restrictions et solutions de contournement

Accéder à l'URL du cadre parent à partir d'un iFrame peut être un défi, en particulier lorsque l'iFrame est situé sur un sous-domaine différent. Cela est dû aux restrictions de sécurité imposées par les mesures de prévention des scripts intersites (XSS).

Lors de l'accès à l'iFrame à partir du même domaine et sous-domaine que le cadre parent, l'accès à l'emplacement du parent doit être simple en utilisant des expressions telles que parent .document.location ou parent.window.location. Cependant, comme l'a souligné l'utilisateur, cette approche échoue lorsque l'iFrame se trouve sur un sous-domaine différent.

Pour illustrer davantage ce point, considérons l'exemple fourni où pageA.html est hébergé sur http://www.mysite .com/ et pageB.html (l'iFrame) sont hébergés sur http://qa-www.mysite.com/. Tenter de récupérer l'URL du parent à partir de pageB.html déclenchera une erreur d'accès refusé. Cela confirme que les sous-domaines sont également soumis à des restrictions de script intersite.

Bien que l'accès direct à l'URL du parent soit interdit dans ces circonstances, il existe une solution de contournement qui peut être utilisée. Pour obtenir l'URL du frame parent, le code JavaScript suivant peut être utilisé :

var url = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;

Remarque :

  • window.parent.location évite le erreur de sécurité provoquée par l'accès à la propriété href (window.parent.location.href).
  • document.referrer fait référence à l'URI de la page liée à l'iFrame. Cela peut ne pas renvoyer le document contenant si l'emplacement de l'iFrame a été déterminé par une autre source.
  • document.location fait référence à l'URL du document, qui est l'iFrame dans ce cas. Lorsque window.location et window.parent.location sont identiques, le href de l'iFrame est le même que le href du parent.

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