当页面显示或隐藏时会触发visibilitychange事件;
    再通过document.hidden属性判断页面是否可见;如果不可见,则document.hidden为true。如果可见,则为false。但是如果该页面只是被其它窗口挡住, 而非最小化该页面。则document.hidden仍然是false. 而不是不可见。

    用例(适用于设置了定时器的页面):

    1. // 判断用户是否在当前页
    2. document.addEventListener("visibilitychange", () => {
    3. if (document.hidden) {
    4. //页面隐藏时的处理(删除定时器)
    5. clearInterval(this.intervalId)
    6. }else {
    7. 页面显示时的处理(启用定时器)
    8. this.$store.dispatch('setHomeThemeVersion')
    9. this.intervalId = setInterval(() => {
    10. console.log('定时器2')
    11. this.$store.dispatch('setHomeThemeVersion')
    12. }, 60000)
    13. }
    14. }, false);

    参考