// recieve message // event object contains: // - data: message sent // - origin (host from which the message was sent, e.g. http://blah.example.com) // - source (reference to a Window object from which message was sent) function postMessageHandler( event ) { console.log("We've got a message!"); console.log("* Message:", event.data); console.log("* Origin:", event.origin); console.log("* Source:", event.source); // check request is from legitimate source and message is expected or not if ( event.origin !== 'http://blah.example.com' ) { return; } if ( event.data === 'Hello' ) { // give response event.source.postMessage( 'world!', 'http://blah.example.com' ); } } if (window.addEventListener) { window.addEventListener("message", postMessageHandler, false); } else { window.attachEvent("onmessage", postMessageHandler); } // send message to a window object // postMessage(message, window origin) // - message: any object, viz. string, JSON, array, Regex, ImageFile, Blob, etc. window.postMessage("Hello", "http://blah.example.com"); // Sample Output /* We've got a message! * Message: Hello * Origin: http://blah.example.com * Source: Window */