file_blockBFCache.html (794B)
1 <script> 2 let keepAlive; 3 window.onpageshow = (pageShow) => { 4 let bc = new BroadcastChannel("bfcache_blocking"); 5 6 bc.onmessage = async function(m) { 7 switch(m.data.message) { 8 case "load": 9 bc.close(); 10 location.href = m.data.url; 11 break; 12 case "runScript": { 13 let test = new Function(`return ${m.data.fun};`)(); 14 keepAlive = await test.call(window); 15 bc.postMessage({ type: "runScriptDone" }); 16 break; 17 } 18 case "back": 19 bc.close(); 20 history.back(); 21 break; 22 case "forward": 23 bc.close(); 24 history.forward(); 25 break; 26 case "close": 27 window.close(); 28 break; 29 } 30 }; 31 32 bc.postMessage({ type: pageShow.type, persisted: pageShow.persisted }) 33 }; 34 </script>