blob-url-factory.html (1192B)
1 <body> 2 <script src="/common/utils.js"></script> 3 <script src="/common/dispatcher/dispatcher.js"></script> 4 <script src="script-factory.js"></script> 5 <script> 6 const query = new URLSearchParams(window.location.search); 7 const id = query.get("id"); 8 const variant = query.get("variant"); 9 let parent = "parent"; 10 let useDispatcher = false; 11 12 if (variant === "subframe") { 13 parent = "parent.parent"; 14 } else if (variant === "popup") { 15 parent = "opener.parent"; 16 } else if (variant === "popup-dispatch") { 17 useDispatcher = true; 18 } 19 20 const blobContent = ` 21 <!doctype html> 22 <base href="${window.location.href}"> 23 <script src="/common/utils.js"><\/script> 24 <script src="/common/dispatcher/dispatcher.js"><\/script> 25 26 <script>${createScript(window.origin, query.get("crossOrigin"), parent, id, useDispatcher)}<\/script> 27 `; 28 const blob = new Blob([blobContent], { type: "text/html" }); 29 const blobURL = URL.createObjectURL(blob); 30 if (variant === "subframe") { 31 const frame = document.createElement("iframe"); 32 frame.src = blobURL; 33 document.body.append(frame); 34 } else if (variant === "popup" || variant === "popup-dispatch") { 35 window.open(blobURL); 36 } else { 37 window.location = blobURL; 38 } 39 </script>