fetch-response.html (857B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 4 <script> 5 const params =new URLSearchParams(location.search); 6 const mode = params.get("mode") || "cors"; 7 const path = params.get('path'); 8 const bufferPromise = 9 new Promise(resolve => 10 fetch(path, {mode}) 11 .then(response => resolve(response.arrayBuffer())) 12 .catch(() => resolve(new Uint8Array()))); 13 14 const entryPromise = new Promise(resolve => { 15 new PerformanceObserver(entries => { 16 const byName = entries.getEntriesByType("resource").find(e => e.name.includes(path)); 17 if (byName) 18 resolve(byName); 19 }).observe({entryTypes: ["resource"]}); 20 }); 21 22 Promise.all([bufferPromise, entryPromise]).then(([buffer, entry]) => { 23 parent.postMessage({ 24 buffer, 25 entry: entry.toJSON(), 26 }, '*'); 27 }); 28 29 </script>