javascript,绑定页面退出监听事件
// 事件监听绑定
export const onEvents = (target, type, handler, option) => {
if (target.addEventListener) {
target.addEventListener(type, handler, option)
} else if (target.on) {
target.on(type, handler, option)
} else if (target.$on) {
target.$on(type, handler, option)
}
return () => offEvents(target, type, handler, option)
}
// 事件监听取消
export const offEvents = (target, type, handler, option) => {
if (target.removeEventListener) {
return target.removeEventListener(type, handler, option)
} else if (target.off) {
return target.off(type, handler, option)
} else if (target.$off) {
return target.$off(type, handler, option)
}
}
// 使用
onEvents(window, 'unload', timeEffect)
onEvents(document, 'unload', timeEffect)
onEvents(window, 'pagehide', timeEffect)
onEvents(window, 'beforeunload', timeEffect)
onEvents(document, 'beforeunload', timeEffect)
onEvents(document, 'visibilitychange', () => {
if (document.visibilityState === 'hidden') timeEffect()
})
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。