<!DOCTYPE HTML> <html> <body> <script type="application/javascript"> function ok(what, msg) { window.parent.postMessage({type: what ? 'OK' : 'KO', msg: msg }, '*'); } window.addEventListener('message', receiveMessage, false); function receiveMessage(evt) { ok(evt.ports.length == 1, "Port transferred!"); var a = new MessageChannel(); ok(a, "MessageChannel created"); evt.ports[0].postMessage('hello world!', [a.port2]); a.port1.onmessage = function(evt) { evt.target.postMessage(evt.data); } } </script> </body> </html>