<html>
<head><title>Post message tests</title>
<script>
// Send a message to our opener, and it will reply.
function postToOpener(msg, origin) {
window.opener.postMessage(msg, origin);
return true;
}
// Send a message to a window named "foo".
function postToFoo(msg) {
var w = window.open("", "foo");
w.postMessage(msg, "*");
return true;
}
// Send a message to a subframe of window named "foo".
function postToFooFrame(msg) {
var w = window.open("", "foo");
w.frames[0][0].postMessage(msg, "*");
return true;
}
// Listen to incoming messages.
var receivedMessages = 0;
var receivedMessagesWithPort = 0;
window.addEventListener("message", messageReceived, false);
function messageReceived(event) {
receivedMessages++;
if (event.data === "2-1-reply") {
event.source.postMessage("msg4", "*");
}
if (event.ports.length > 0) {
receivedMessagesWithPort++;
var port = event.ports[0];
port.start();
port.postMessage("msg-back-via-port");
// Change the title to generate a notification.
document.title = event.data.message;
} else {
document.title = event.data;
}
}
</script>
</head>
</html>