这里写的是退出页面,而不是关闭页面,他们有很大的区别。

开始

window.onclose

当在window对象上触发close事件时的事件处理器 (不适用于Firefox 2或Safari)
window.onclose = funcRef

window.onbeforeunload

当窗口即将被卸载(关闭)时,会触发该事件。此时页面文档依然可见,且该事件的默认动作可以被取消
window.onbeforeunload = funcRef

window.onunload

当页面关闭后,会触发unload事件。
window.onunload = funcRef;

window.addEventListener(‘popstate’,func)

活动历史记录条目更改时,将触发popstate事件。需要注意的是调用history.pushState()或history.replaceState()不会触发popstate事件。只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back()或者history.forward()方法)。
window.addEventListener(‘popstate’, () => showSaveUserBox(), false);

参考

  1. https://developer.mozilla.org/zh-CN/docs/Web/API/Window/popstate_event