Le site Web dans l'iframe ne se trouve pas dans le même domaine , mais les deux sont à moi, et j'aimerais communiquer entre le iframe
et le site parent. C'est possible?
javascript
html
ajax
iframe
Danny Fox
la source
la source
window.onmesage = function()...
. Dans l'iframe:window.top.postMessage('hello', '*')
file://C:/Windows/system32/whatever
une page Web et le faire pointer directement dans le dossier système de l'utilisateur. De nos jours, les navigateurs ignorent généralement les clics sur des liens comme celui-ci. Exécutez un serveur Web et accédez à votre code via celui-ci et vous verrez les erreurs apparaître.window.frames[index]
pour obtenir child frame (<iframe>, <object>, <frame>
), équivalent àgetElementsByTagName("iframe")[index].contentWindow
. Pour obtenir un objet de fenêtre parent à partir d'IFrames, il est préférable d'utiliserwindow.parent
, comme lewindow.top
représente la fenêtre la plus parenteIl doit être ici, car réponse acceptée de 2012
En 2018 et dans les navigateurs modernes, vous pouvez envoyer un événement personnalisé de l'iframe à la fenêtre parent.
iframe:
parent:
PS: Bien sûr, vous pouvez envoyer des événements dans la direction opposée de la même manière.
la source
dispatchEvent
est pris en charge dans tous les principaux navigateurs. IE9 était la première version, donc la plupart des systèmes d'exploitation fonctionnent maintenant avec. caniuse.com/#search=dispatchEventCette bibliothèque prend en charge les navigateurs HTML5 postMessage et hérités avec redimensionnement + hachage https://github.com/ternarylabs/porthole
Edit: Maintenant, en 2014, l'utilisation d'IE6 / 7 est assez faible, IE8 et surtout le support,
postMessage
donc je suggère maintenant de simplement l'utiliser.https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
la source
la
window.top
propriété doit pouvoir donner ce dont vous avez besoin.Par exemple
Voir http://cross-browser.com/talk/inter-frame_comm.html
la source
Vous pouvez aussi utiliser
postMessage(message, '*')
;la source
Utilisez
event.source.window.postMessage
pour renvoyer à l'expéditeur.Depuis Iframe
Puis de la part des parents, répondez.
la source