OLD | NEW |
1 <html> | 1 <html> |
2 | 2 |
3 <head><title>Post message tests</title> | 3 <head><title>Post message tests</title> |
4 <script> | 4 <script> |
5 // Send a message to our opener, and it will reply. | 5 // Send a message to our opener, and it will reply. |
6 function postToOpener(msg, origin) { | 6 function postToOpener(msg, origin) { |
7 window.opener.postMessage(msg, origin); | 7 window.opener.postMessage(msg, origin); |
8 return true; | 8 return true; |
9 } | 9 } |
10 | 10 |
11 // Send a message to a window named "foo". | 11 // Send a message to a window named "foo". |
12 function postToFoo(msg) { | 12 function postToFoo(msg) { |
13 var w = window.open("", "foo"); | 13 var w = window.open("", "foo"); |
14 w.postMessage(msg, "*"); | 14 w.postMessage(msg, "*"); |
15 return true; | 15 return true; |
16 } | 16 } |
17 | 17 |
18 // Send a message to a subframe of window named "foo". | 18 // Send a message to a subframe of window named "foo". |
19 function postToFooFrame(msg) { | 19 function postToFooFrame(msg) { |
20 var w = window.open("", "foo"); | 20 var w = window.open("", "foo"); |
21 w.frames[0][0].postMessage(msg, "*"); | 21 w.frames[0][0].postMessage(msg, "*"); |
22 return true; | 22 return true; |
23 } | 23 } |
24 | 24 |
25 // Listen to incoming messages. | 25 // Listen to incoming messages. |
26 var receivedMessages = 0; | 26 var receivedMessages = 0; |
| 27 var receivedMessagesWithPort = 0; |
27 window.addEventListener("message", messageReceived, false); | 28 window.addEventListener("message", messageReceived, false); |
28 function messageReceived(event) { | 29 function messageReceived(event) { |
29 receivedMessages++; | 30 receivedMessages++; |
30 if (event.data === "2-1-reply") { | 31 if (event.data === "2-1-reply") { |
31 event.source.postMessage("msg4", "*"); | 32 event.source.postMessage("msg4", "*"); |
32 } | 33 } |
33 // Change the title to generate a notification. | 34 if (event.ports.length > 0) { |
34 document.title = event.data; | 35 receivedMessagesWithPort++; |
| 36 var port = event.ports[0]; |
| 37 port.start(); |
| 38 port.postMessage("msg-back-via-port"); |
| 39 // Change the title to generate a notification. |
| 40 document.title = event.data.message; |
| 41 } else { |
| 42 document.title = event.data; |
| 43 } |
35 } | 44 } |
36 </script> | 45 </script> |
37 </head> | 46 </head> |
38 | 47 |
39 </html> | 48 </html> |
OLD | NEW |