O site no iframe não está localizado no mesmo domínio , mas ambos são meus e eu gostaria de me comunicar entre o iframe
site e o pai. É possível?
javascript
html
ajax
iframe
Danny Fox
fonte
fonte
window.onmesage = function()...
. No iframe:window.top.postMessage('hello', '*')
file://C:/Windows/system32/whatever
em uma página da Web e apontá-lo diretamente para a pasta do sistema do usuário. Atualmente, os navegadores ignoram cliques em links como esse. Execute um servidor da web e acesse seu código por meio disso e você verá os erros aparecerem.window.frames[index]
para obter um quadro filho (<iframe>, <object>, <frame>
), equivalente agetElementsByTagName("iframe")[index].contentWindow
. Para obter objeto de janela pai de IFrames, é melhor usarwindow.parent
, comowindow.top
representa o mais alto Parent JanelaDeve estar aqui, porque resposta aceita de 2012
Em 2018 e navegadores modernos, você pode enviar um evento personalizado do iframe para a janela pai.
iframe:
pai:
PS: Claro, você pode enviar eventos na direção oposta da mesma maneira.
fonte
dispatchEvent
é suportado em todos os principais navegadores. O IE9 foi a primeira versão em que entrou, então a maioria dos sistemas operacionais agora trabalha com ele. caniuse.com/#search=dispatchEventEsta biblioteca suporta navegadores HTML5 postMessage e herdados com redimensionamento + hash https://github.com/ternarylabs/porthole
Edit: Agora em 2014, o uso do IE6 / 7 é bastante baixo, o IE8 e, acima de tudo, o suporte,
postMessage
então agora sugiro apenas usá-lo.https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
fonte
a
window.top
propriedade deve poder fornecer o que você precisa.Por exemplo
Consulte http://cross-browser.com/talk/inter-frame_comm.html
fonte
Você também pode usar
postMessage(message, '*')
;fonte
Use
event.source.window.postMessage
para enviar de volta ao remetente.Do Iframe
Então, dos pais, diga de volta.
fonte