Source code

Revision control

Copy as Markdown

Other Tools

<html>
<script>
onpageshow = function(pageShowEvent) {
var bc = new BroadcastChannel("ship_beforeunload");
bc.onmessage = function(event) {
if (event.data.action == "register_beforeunload") {
onbeforeunload = function() {
bc.postMessage("beforeunload_fired");
bc.close();
}
if (event.data.loadNextPageFromSessionHistory) {
history.back();
} else {
location.href += "?differentpage";
}
} else if (event.data.action == "navigate_to_page_b") {
bc.close();
if (event.data.blockBFCache) {
window.blockBFCache = new RTCPeerConnection();
}
location.href += "?pageb";
} else if (event.data.action == "back_to_page_b") {
if (event.data.forwardNavigateToPageB) {
history.forward();
} else {
history.back();
}
bc.close();
} else if (event.data.action == "close") {
bc.close();
window.close();
}
}
bc.postMessage({type: pageShowEvent.type, persisted: pageShowEvent.persisted});
}
</script>
</html>