Facilita muito o gerenciamento de mensagens para frames.
WebWorkers também.
Usa JSON.stringify e parse para permitir que você envie objetos, comandos de string simples ou ambos.
/**************************
Message Passing to frame
*************************/
function postMsgToFrame(cmd, msg) {
var frame = document.getElementById("myIframe");
if (!msg || msg == null || msg == undefined) {
msg = null;
}
var packet = { "cmd": cmd, "msg": msg }
console.log("sending to client", JSON.stringify(packet));
frame.contentWindow.postMessage(JSON.stringify(packet), "*");
}
/**************************
Message recieving from frame
**************************/
function recieveMessage(e) {
var packet = JSON.parse(e.data);
console.log("new cmd packet", packet);
if (packet.cmd == something) {
doSomething();
} else if (packet.cmd == something_else) {
doSomethingElse();
} else {
console.warn('bad packet', packet);
}
};
window.addEventListener("onmessage", recieveMessage, false);