document.addEventListener('visibilitychange', () => { if (document.visibilityState == 'hidden') { alert('离开') } if (document.visibilityState == 'visible') { alert('进入') } })
visibilitychange是浏览器新添加的一个事件,当其选项卡的内容变得可见或被隐藏时,会在文档上触发visibilitychange(能见度更改)事件。这个事件主要在用户切换浏览器标签页时触发,例如,当用户将浏览器标签页切换到后台,或者从后台切换到前台时,就会触发visibilitychange事件。
visibilitychange事件有两个常用的可选值:hidden和visible。当页面内容对用户不可见时,例如页面最小化,或者用户切换到其他网页时,visibilityState的值就会变为hidden;而当页面内容可见时,visibilityState的值就会变为visible。
visibilitychange事件的主要应用场景包括但不限于:防止当页面正在渲染时加载资源,或者当页面在背景中或窗口最小化时禁止某些活动。此外,对于采用HTML5开发的游戏来说,visibilitychange事件也非常有用。例如,当用户正在玩游戏时,如果突然切换到后台去发一条短信或打一个电话,再切换到游戏,开发者就可以通过捕捉visibilitychange事件来处理这种突发情形,当游戏切换到后台时就暂停游戏,从后台切换回来时,又能允许用户继续游戏。
在JavaScript中,可以使用document.addEventListener方法来监听visibilitychange事件,然后根据事件的target.visibilityState属性来判断页面是可见还是隐藏,从而执行相应的操作。例如,当应用程序或浏览器标签页切换到后台时就停止播放音乐,从后台切换回来时又开始播放音乐。
总的来说,visibilitychange事件提供了一种有效的方式来处理用户在浏览器中的行为,特别是当用户切换浏览器标签页时,可以帮助开发者更好地管理页面资源和用户体验。