| 35 | iWindow.postMessage({ ack: txid, args: args}, iOrigin); |
| 36 | }; |
| 37 | var onMsg = function (ev) { |
| 38 | if (ev.source !== iWindow) { return; } |
| 39 | var data = ev.data; |
| 40 | |
| 41 | // On ack |
| 42 | if (data.ack) { |
| 43 | if (handlers[data.ack]) { |
| 44 | handlers[data.ack](data.args); |
| 45 | } |
| 46 | return; |
| 47 | } |
| 48 | |
| 49 | // On new command |
| 50 | var msg = data.msg; |
| 51 | var txid = data.txid; |
| 52 | if (commands[msg.q]) { |
| 53 | if (devMode) { console.warn('OUTER RECEIVED QUERY', msg.q, msg.data); } |
| 54 | commands[msg.q](msg.data, function (args) { |
| 55 | _sendCb(txid, args); |
| 56 | }); |
| 57 | return; |
| 58 | } |
| 59 | |
| 60 | }; |
| 61 | window.addEventListener('message', onMsg); |
| 62 | |
| 63 | var send = function (q, data, cb) { |