// 事件监听绑定
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()
})