cross-origin-subframe.html (927B)
1 <!DOCTYPE html> 2 3 <html> 4 5 <head> 6 <style> 7 #target { background: green; } 8 </style> 9 </head> 10 11 <body> 12 <p>Cross-origin iframe</p> 13 <div id="target"></div> 14 15 <script> 16 function messageHandler(msg) { 17 if (msg.msgName === "setSize") { 18 target.style.width = msg.width; 19 target.style.height = msg.height; 20 } 21 } 22 23 const observer = new ResizeObserver((entries) => { 24 for (let entry of entries) { 25 window.top.postMessage({ 26 msgName: "event", 27 borderBoxBlockSize: entry.borderBoxSize[0].blockSize, 28 borderBoxInlineSize: entry.borderBoxSize[0].inlineSize 29 }, "*"); 30 } 31 }); 32 33 window.addEventListener("load", () => { 34 observer.observe(target); 35 window.addEventListener("message", (event) => messageHandler(event.data)); 36 37 window.top.postMessage({ "msgName": "loaded" }, "*"); 38 }, { once: true }); 39 </script> 40 </body> 41 42 </html>