Html5 – Cross browser Iframe post-messaggio – da bambino a genitore?

Ho seguito questo tutorial – http://www.youtube.com/watch?v=R2hOvZ7bwXU , che spiega in pratica come usare postmessage per trasmettere in modo sicuro un messaggio tra iframe e genitore – in pratica si finisce con qualcosa di simile – http://html5demos.com/postmessage2

Il mio problema è che ho bisogno che funzioni in senso inverso (da bambino a genitore) e non so come indirizzare la finestra genitore.

questo è il mio codice ricevente (nel genitore) –

function handlingMsg(e) {alert("works") if(e.origin == "http://uc.dialogue.net") { var blah = e.data; alert(blah); } else{alert("error");} } addEventListener("message",handlingMsg, true); 

e questa è la funzione mittente che viene triggersta da un semplice modulo (in child) –

  var text=$('.srchInput').val(); window.parent.postMessage(text, "http://uc.dialogue.net"); 

Devo prendere di mira il genitore in un modo diverso?

Saluti Paolo

 var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; // Listen to message from child window eventer(messageEvent,function(e) { var key = e.message ? "message" : "data"; var data = e[key]; //run function// },false); 

Ottenuto per funzionare con quanto sopra nella pagina madre e quanto segue nella pagina bambino –

 parent.postMessage("loadMyOrders","*"); // `*` on any domain 

Codice copiato da qui .

Una versione moderna e semplificata della risposta accettata (che elimina il supporto legacy ie8 e rende il codice molto più leggibile):

 window.addEventListener('message',function(e) { var key = e.message ? 'message' : 'data'; var data = e[key]; //run function// },false); 

Perfavore guarda: