在網(wǎng)上尋找了一下原因缠劝,找到了ios官方文檔潮梯,在官方文檔中說(shuō)unload
和onbeforeunload
已經(jīng)廢棄掉了,使用pagehide
作為代替剩彬,這就說(shuō)明如果是在ios平臺(tái)酷麦,在HTML5中如果想在頁(yè)面消失的時(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)頁(yè)面刷新或關(guān)閉時(shí)調(diào)用
onbeforeunload
也是頁(yè)面刷新或關(guān)閉的時(shí)候調(diào)用,區(qū)別是onunload已經(jīng)從服務(wù)器上讀到了需要加載的新頁(yè)面在即將替換掉當(dāng)前頁(yè)面時(shí)調(diào)用琴昆,可以阻止頁(yè)面的更新和關(guān)閉氓鄙。
在各個(gè)瀏覽器中onbeforeunload 兼容性比 onunload 更好一些,