在網(wǎng)上尋找了一下原因,找到了ios官方文檔,在官方文檔中說unload和onbeforeunload已經(jīng)廢棄掉了,使用pagehide作為代替,這就說明如果是在ios平臺(tái),在HTML5中如果想在頁面消失的時(shí)候做點(diǎn)事情,需要監(jiān)聽pagehide事件。
兼容
在使用addEventListener監(jiān)聽事件時(shí),在老的IE瀏覽器中不支持,如果你想要兼容所有的情況就需要做個(gè)判斷。
if (window.addEventListener) {
window.addEventListener(eventName, function () {
// do something
})
} else if (window.attachEvent) {
// 主要是為了兼容老的IE
window.attachEvent('on' + eventName, function () {
// do something
})
} else {
window.onbeforeunload = function () {
// do something
}
}
onunload VS onbeforeunload
onunload當(dāng)頁面刷新或關(guān)閉時(shí)調(diào)用
onbeforeunload也是頁面刷新或關(guān)閉的時(shí)候調(diào)用,區(qū)別是onunload已經(jīng)從服務(wù)器上讀到了需要加載的新頁面在即將替換掉當(dāng)前頁面時(shí)調(diào)用,可以阻止頁面的更新和關(guān)閉。
在各個(gè)瀏覽器中onbeforeunload 兼容性比 onunload 更好一些,