J'ai un iframe qui injecte dans les pages, l'a appelé "Helper". Donc, en raison de la même politique d'origine, je dois définir le domaine iframe identique est le domaine de la fenêtre parent. Mais je ne peux pas avoir accès au domaine de la fenêtre parent. Comment peut-il être résolu?
Ce code fonctionne actuellement pour les domaines de 2e niveau: p> mais j'ai besoin de l'obtenir de la fenêtre parent plutôt que de compter sur le 2ème niveau domaine p> p>
4 Réponses :
En bref, il ne peut pas. Réglage sauf si j'ai mal compris votre question. N'hésitez pas à poster quelques exemples à clarifier. P> document.domain code> ne fonctionne que lorsque l'iframe et la fenêtre contenant font réellement partie du même domaine. Si un navigateur devait vous laisser définir document.domain code> sur autre chose que le domaine que vous étiez réellement, ce serait une violation de la sécurité. Considérez, tout script malveillant pourrait simplement dire «non vraiment, croyez-moi sur celui-ci» et le navigateur distrait essentiellement: «Oh, d'accord, puisque vous avez demandé si bien, voici toute la permission que vous voulez». P>
document.domain code> ne peut être défini que sur un domaine parent du domaine actuel de la page. Si un iframe et une fenêtre contenant ne partagent pas au moins cela, aucun navigateur ne leur permettra de croiser. P>
en supposant que votre parent peut être a.domain.com code>
et votre iframe est b.domain.com code> - alors vous pouvez faire ce que vous tentez.
Si vous devez savoir ce que le parent est, transmettez-le dans l'attribut Iframe SRC ou essayez document.referrer code> p>
Par exemple, j'ai 6.weather.ch Domaine parent, et si j'utilise mon code, j'ai le domaine iframe washer.ch et la permission refusée
Ensuite, le code des parents doit définir son document.domain sur "météo.ch" ou ".weather.ch" (je ne me souviens pas s'il est avec un point de dirigeant ou non)
Je ne sais pas si cela vous aidera, mais j'utilise cela dans iframe donc je vérifie si le domaine déjà défini a exception ang essayer de deviner le domaine, dans les deux cas, il y a Pas besoin de définir un domaine p> éditer:
Plus correctement pour utiliser Post Message pour définir le domaine si nécessaire P> P>
Ajouter un document.Domain = 'Your.Domain' dans les pages. P>
Comme ça. N'oubliez pas les deux parents.top p>
document.domain = 'corp.local'; seulement parent comme p>
document.domain = 'Corp'; ne fonctionnera pas. p>
Comme je l'ai mentionné ici. JavaScript Obtenez la page actuelle de l'URL d'Iframe sur la sous-domaine p>
Ce document a aidé. http://javascript.info/Tutorial/same-origin-security-policy p>
Votre iframe vient d'un autre serveur? Ensuite, peu importe ce que vous définissez document. Il doit venir de ce domaine
Si les dernières parties du domaine n'est pas la même, l'oubliez-le. Il est utilisé pour faire correspondre des ventes.domain.com aux shopping.domain.com et non site.sales.com avec site.shopping.com
Oui, ce sera la même chose, je viens de savoir chaud pour l'obtenir de la fenêtre mère.
En outre, vous êtes peut-être intéressé par un numéro de port de string comme celui-ci: document.domain = domainName.split (":") [0];