事件方法(一)页面刷新或关闭事件

   onbeforeunload,在页面刷新或关闭之前执行,早于onunload(刷新或关闭时调用,同时触发载入事件onload)

   可用于离开页面提醒、数据存储操作等

   onbeforeunload 可以阻止onload

一、添加与移除

window.addEventListener('beforeunload', unloadHandle, false);
window.removeEventListener('beforeunload', unloadHandle, false);

二、老版本IE兼容

 1 if (window.addEventListener) {
 2     window.addEventListener('beforeunload', function () {
 3        // do something
 4     })
 5     } else if (window.attachEvent) {
 6     // 主要是为了兼容老的IE
 7     window.attachEvent('onbeforeunload', function () {
 8         // do something
 9     })
10     } else {
11     window.onbeforeunload = function () {
12         // do something
13     }
14 }

三、IOS系统

   在IOS平台下,onload、onbeforeunload已经废弃,使用了pageshow和pagehide代替

   因此,IOS平台应用的onbeforeunload要更换为pagehide 

window.addEventListener('pagehide', unloadHandle, false);

   可以两个都监听,也可以判断环境添加不同的监听

if ("onpagehide" in window) {
   //pagehide
} else {
   //beiforeunload
}
原文地址:https://www.cnblogs.com/xihao/p/11384241.html