controlled-frame-postMessage.html (835B)
1 <html> 2 <body> 3 <script> 4 var messageData; 5 function registerMessage() 6 { 7 navigator.serviceWorker.onmessage = (e) => { 8 if (window.messageData === undefined) 9 window.messageData = e.data; 10 } 11 } 12 13 function listenToMessages() 14 { 15 messageData = []; 16 setTimeout(() => { 17 navigator.serviceWorker.addEventListener("message", (e) => { 18 messageData.push(e.data); 19 }, { once:true }); 20 }, 500); 21 setTimeout(() => { 22 navigator.serviceWorker.onmessage = (e) => { 23 messageData.push(e.data); 24 }; 25 }, 1000); 26 } 27 28 if (window.location.search === "?repeatMessages") { 29 setTimeout(() => { 30 registerMessage(); 31 }, 500); 32 } else if (window.location.search.includes("listener")) { 33 listenToMessages(); 34 } else { 35 registerMessage(); 36 } 37 </script> 38 </body> 39 </html>