2013-09-25 9 views
11

Sto lavorando tramite Third Party Javascript. Sono particolarmente interessato alla comunicazione tra una pagina padre e una frame figlio di origine diversa. Usando window.postMessage, è banale inviare messaggi in modo sicuro dal bambino e far sì che i genitori li ricevano con l'evento message.Comunicazione di cross-origine di iframe padre-figlio

Non ho avuto fortuna andando nella direzione opposta. Posso avere conferma che è non possibile comunicare dal genitore al figlio usando postMessage? Se no, quali sono i modi per aggirare questo problema?

risposta

12

Dovresti essere in grado di utilizzare .postMessage() tra due finestre che interagiscono tra loro. Non importa in quale direzione stai inviando il messaggio. Se non funziona in una direzione, probabilmente c'è un errore nell'implementazione. Potrebbe essere necessario assicurarsi di avere l'oggetto finestra appropriato.

Per un iframe, si desidera utilizzare la proprietà .contentWindow per ottenere la sua finestra nei browser moderni.

Una buona documentazione qui: https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage

+0

Eri così corretto. La mia implementazione aveva un bug che ho visto solo dopo la pubblicazione. – Benmj

+0

c'è qualche possibilità che tu sappia come ottenere la proprietà .contentWindow? Non mi sembra di averne uno sull'iframe nella mia pagina. Lo stesso dominio anche ... – newshorts

+0

Questo è stato monumentalmente utile per me. Grazie! – Kon