J'ai une page qui s'affiche dans un iframe.
J'ai besoin d'obtenir le parent.location.url avec js à partir de cette page (page enfant).
Les deux sites sont dans des domaines différents.
J'essaie:
alert (parent.location.url)
Mais je reçois cette erreur:
Autorisation refusée pour http: // parentdomain pour obtenir la propriété Location.URL de http: // childdomain .
???? C'est possible?
essaye ça:
var referrer = document.referrer;
alert(referrer);
Ce que vous essayez de faire n'est pas possible en soi. Sauf si vous avez le contrôle sur l'appel de la page parent de la page enfant. Si vous le faites, vous pouvez appeler la page enfant avec une instruction get dans l'URL de la page parent. Donc, si votre page parent est http://parentpage.com alors voici comment vous devez appeler l'iFrame.
<iframe src='http://childpage.com/?parent=http://parentpage.com' />
Ensuite, tout ce que vous avez à faire dans la page enfant pour obtenir la référence est d'obtenir la chaîne avec
window.location.search //not sure of browser compatibility with this
et extrayez l'URL de la page parent en la récupérant de cette chaîne. Je donnerais plus de détails, mais je ne suis même pas sûr de la première question que j'avais.
Avez-vous essayé quelque chose comme:
alert(window.top.location.href);
Cela niquement fonctionnera si la page parent et l'iframe sont sur le même domaine. S'ils ne sont pas sur le même domaine, vous pouvez essayer de passer l'emplacement via le src , comme l'a suggéré Madison Williams.
C'est probablement pourquoi vous obtenez "Autorisation refusée ..."
Vous pourrez le trouver ainsi, et tous les navigateurs devraient pouvoir le prendre en charge:
query = window.parent.location.search.substring(1);
Vous ne devriez pas obtenir d'erreurs d'autorisation avec cela, mais je peux me tromper.
Utilisez postMessage pour transmettre des données dans les deux sens entre les fenêtres. C'est un peu délicat, mais nécessaire lorsque les fenêtres communiquent entre les origines.
Essayer:
var pathname = window.parent.location.href