2010-10-26 3 views
1

Est-il 100% impossible d'obtenir l'URL du navigateur à partir du code html iframe d'un iframe chargé sur un domaine distinct? J'ai essayé javascript et cela n'a pas fonctionné. Dans quelle langue pourrais-je faire cela? Merci!Obtenir l'URL d'un enfant iframe

MISE À JOUR Merci pour l'aide! PHP fonctionne.

<?php 
if(isset($_SERVER['HTTP_REFERER'])) 
{ 
    echo $_SERVER['HTTP_REFERER']; 
}?> 

Répondre

2

Si ce que vous demandez est si vous pouvez obtenir l'URL du navigateur qui héberge votre page dans un iframe via Javascript, la réponse est non; vous ne pouvez pas le faire dans un navigateur Web correctement écrit. Si un iframe pouvait espionner tout ce qui l'héberge, alors toutes sortes de choses malveillantes pourraient être faites. Ce que vous pouvez faire à partir de votre code côté serveur, regardez l'en-tête HTTP du référent dans la requête pour votre page hébergée. Cela doit être défini sur l'URL de la page qui intègre votre page.

1

Vous pouvez obtenir la propriété initiale src dont iframe est défini.

alert(document.getElementById("iframeID").src); 

JSFiddle

si le document est inlying navigua à une autre page, vous êtes certainement pas en mesure d'obtenir la nouvelle adresse.

+0

Est-ce que cette obtenir l'URL actuelle (si l'utilisateur a navigué dans le cadre) ou l'URL initiale/par défaut? –

+0

que se passe-t-il si vous ne connaissez pas l'identifiant de trame, car vous ne contrôlez pas la page hôte qui charge votre site dans un iframe? Merci! –

+1

@ Christian le premier, a ajouté une clarification. @Angelfilm non, vous ne pouvez pas contrôler la page hôte du tout depuis l'iframe. L'URL de l'hôte * peut apparaître dans l'en-tête de la requête 'HTTP_REFERER', mais vous aurez besoin d'un script côté serveur pour l'analyser. –

0

Une fois que l'utilisateur a navigué à l'intérieur de cette iframe qui se trouve dans un domaine différent du document principal, vous n'avez accès à aucune information sur ce nouveau document dans l'iframe. Ceci est de protéger contre les exploits XSS et ne peut pas être « contourné »

-1

Il suffit d'utiliser cette JavaScript pour détecter si votre page est à l'intérieur d'un cadre ou iframe:

<script> 
    if(top.frames.length > 0) 
    { 
     // do something like this to kill the iframe 
     top.location = "http://mysite.com"; 
    } 
</script> 
+0

Merci - Je ne voulais pas tuer le cadre dans lequel je suis, il suffit de savoir sur quoi il se trouvait pour que nous puissions le suivre et gérer la sécurité de notre contenu. Merci pour la réponse. –

Questions connexes