当页面显示或隐藏时会触发visibilitychange事件;
再通过document.hidden属性判断页面是否可见;如果不可见,则document.hidden为true。如果可见,则为false。但是如果该页面只是被其它窗口挡住, 而非最小化该页面。则document.hidden仍然是false. 而不是不可见。
用例(适用于设置了定时器的页面):
// 判断用户是否在当前页
document.addEventListener("visibilitychange", () => {
if (document.hidden) {
//页面隐藏时的处理(删除定时器)
clearInterval(this.intervalId)
}else {
页面显示时的处理(启用定时器)
this.$store.dispatch('setHomeThemeVersion')
this.intervalId = setInterval(() => {
console.log('定时器2')
this.$store.dispatch('setHomeThemeVersion')
}, 60000)
}
}, false);