javascript - ejemplo - Html5-Mensaje posterior del iframe de navegador cruzado-¿hijo a padre?
iframe video (2)
Una versión moderna y simplificada de la respuesta aceptada (que elimina el soporte legacy ie8 y hace que el código sea mucho más legible):
window.addEventListener(''message'',function(e) {
var key = e.message ? ''message'' : ''data'';
var data = e[key];
//run function//
},false);
Por favor mira:
He estado siguiendo este tutorial - http://www.youtube.com/watch?v=R2hOvZ7bwXU , que básicamente explica cómo usar la correspondencia para pasar un mensaje de forma segura entre el iframe y el principal - básicamente terminas con algo como esto - http://html5demos.com/postmessage2
Mi problema es que necesito que funcione al revés (hijo a padre) y no sepa cómo enfocar la ventana padre.
este es mi código de receptor (en el padre) -
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);
y esta es la función del remitente que se desencadena por una forma simple (en el niño) -
var text=$(''.srchInput'').val();
window.parent.postMessage(text, "http://uc.dialogue.net");
¿Debo dirigirme a los padres de una manera diferente?
Saludos Paul
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);
Lo tengo para trabajar con lo anterior en la página principal y lo siguiente en la página secundaria -
parent.postMessage("loadMyOrders","*"); // `*` on any domain
Código copiado desde here .