2009-09-30 4 views
1

La page Web A est incorporée dans un iframe à l'intérieur de la page Web B. A et B sont sur deux domaines différents et donc la même politique d'origine empêche A d'accéder aux propriétés de B comme ça;Comment obtenir l'URL d'une page Web qui incorpore une autre page dans un iframe sur un domaine d'origine différent

location = window.top.location.href // emits a "Permission denied" error 

Existe-t-il un autre moyen pour A d'obtenir l'URL de B?

+0

Qu'en est-il de parent.document.location? – arkanciscan

+0

Aardvark a été un peu utile http://vark.com/history/questions/3506356 – arkanciscan

Répondre

1

No

+0

Vous ne pouvez donc utiliser window.top que si votre page est intégrée dans une page sur le même domaine? – arkanciscan

+1

Non, vous pouvez utiliser window.top - vous ne pouvez pas lire les données du cadre supérieur. Vous pouvez, par exemple, ** définir ** l'emplacement pour que le navigateur charge une URL différente dans le cadre «supérieur». – Quentin

0

Si vous avez le contrôle sur les deux domaines, vous pouvez essayer une bibliothèque de scripts inter-domaines comme EasyXDM, qui enveloppent bizarreries cross-navigateur et de fournir une API facile à utiliser pour communiquer dans le script client entre différents domaines utilisant le meilleur mécanisme disponible pour ce navigateur (par exemple, si disponible, autres mécanismes sinon). Avertissement: vous devez avoir le contrôle sur les deux domaines afin de le faire fonctionner (où "contrôle" signifie que vous pouvez placer des fichiers statiques sur les deux). Mais vous n'avez besoin d'aucun changement de code côté serveur. Dans votre cas, vous ajouteriez javascript dans une ou dans vos deux pages pour regarder le fichier location.href, et vous utiliseriez la bibliothèque pour appeler un script d'une page vers un script dans l'autre. Une autre mise en garde: il y a des implications de sécurité ici - assurez-vous de faire confiance au script de l'autre domaine!

Questions connexes