Définir dynamiquement le document.domaine de l'iframe
J'ai une iframe qui injecte dans les pages, l'appelait "l'aide". En raison même de la politique d'origine j'ai une iframe domaine de la même fenêtre parent de domaine. Mais je ne peux pas accéder à la fenêtre parent de domaine. Comment peut-il être résolu?
Mise à jour #1
Ce code est actuellement en travaux pour le 2nd level domains:
pathArray = window.location.host.split('.');
var arrLength = pathArray.length;
var domainName = pathArray.slice(arrLength - 2, arrLength).join('.');
document.domain = domainName;
mais j'ai besoin de quelque sorte de l'obtenir à partir de la fenêtre parent, plutôt que de compter sur le 2e niveau de domaine
- Votre iframe vient d'un autre serveur? ensuite, il n'a pas d'importance ce que vous définissez document.domaine. C'est à partir de ce domaine
- Si la dernière partie du domaine n'est pas le même, puis l'oublier. Il est utilisé pour faire correspondre sales.domain.com pour shopping.domain.com et pas site.sales.com avec site.shopping.com
- oui ce sera la même chose, je viens de point de savoir chaud de les obtenir à partir de la fenêtre parent.
- Aussi, vous pourriez être intéressé par décapage numéro de port comme ceci: document.domaine = domaine.split(":")[0];
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si ça va aider mais je l'utiliser dans un iframe
J'ai donc vérifier si le domaine déjà, nous les avons exception ang essayer de deviner de domaine, dans les deux cas, il n'est pas nécessaire de définir un domaine
EDIT:
Plus à utiliser correctement post message à l'ensemble du domaine si nécessaire
En bref, il ne peut pas. Réglage
document.domain
ne fonctionne que lorsque l'iFrame et contenant de la fenêtre fait partie du même domaine. Si un navigateur ont été pour vous permettre de définirdocument.domain
à autre chose que le domaine vous ont fait, ce serait une violation de la sécurité. Considérons, tout le script malveillant peut juste dire "Non, vraiment, faites-moi confiance" et le navigateur revient à dire, 'Oh, d'accord, puisque vous le demandez si gentiment, voici toutes les permissions que vous voulez'.document.domain
ne peut être réglé à un parent de domaine de la domaine réel de la page. Si un iFrame et une fenêtre contenant ne partage pas, à moins que, alors pas de navigateur va leur permettre de cross-talk.À moins que j'ai mal compris votre question. N'hésitez pas à poster quelques exemples pour clarifier.
En supposant que vous avez un parent peut être
a.domain.com
et votre iframe est
b.domain.com
- ensuite, vous pouvez faire ce que vous tentez.Si vous DEVEZ savoir ce que le parent est le passage dans l'attribut src de l'iframe ou essayer
document.referrer
ajouter un document.domaine = 'votre.de domaine " dans les deux pages.
comme ça. n'oubliez pas les deux parents.top
document.domain = " corp.local'; seul parent comme
document.domain = "corp"; ne fonctionne pas.
Comme je l'ai mentionné ici. javascript obtenir iframe url de la page en cours sur le sous-domaine
ce document a permis. http://javascript.info/tutorial/same-origin-security-policy