<!DOCTYPE HTML> <html> <body> <script type="application/javascript"> function is(a, b, msg) { ok(a == b, msg); } function ok(a, msg) { window.parent.postMessage({ status: a ? "OK" : "KO", message: msg }, "*"); } ok("BroadcastChannel" in window, "BroadcastChannel exists"); var bc = new BroadcastChannel("foobar"); ok(bc, "BroadcastChannel can be created"); is(bc.name, 'foobar', "BroadcastChannel.name is foobar"); ok("postMessage" in bc, "BroadcastChannel has postMessage() method"); bc.onmessage = function(evt) { ok(evt instanceof MessageEvent, 'evt is a MessageEvent'); is(evt.target, bc, 'MessageEvent.target is bc'); is(evt.target.name, 'foobar', 'MessageEvent.target.name is foobar'); is(evt.target.name, bc.name, 'MessageEvent.target.name is bc.name'); is(evt.data, "Hello world from the window!", "Message received from the window"); bc.postMessage("Hello world from the iframe!"); } </script> </body> </html>