在网上寻找了一下原因,找到了ios官方文档,在官方文档中说unload
和onbeforeunload
已经废弃掉了,使用pagehide
作为代替,这就说明如果是在ios平台,在HTML5中如果想在页面消失的时候做点事情,需要监听pagehide
事件。
兼容
在使用addEventListener
监听事件时,在老的IE浏览器中不支持,如果你想要兼容所有的情况就需要做个判断。
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
当页面刷新或关闭时调用
onbeforeunload
也是页面刷新或关闭的时候调用,区别是onunload已经从服务器上读到了需要加载的新页面在即将替换掉当前页面时调用,可以阻止页面的更新和关闭。
在各个浏览器中onbeforeunload 兼容性比 onunload 更好一些,
网友评论