介绍
visibilitychange
事件:用于判断用户是否离开当前页面
代码
<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>初始化</title></head><body><script>!function () {// 添加事件监听document.addEventListener('visibilitychange', function () {let pageVisibility = document.visibilityState// 页面变为不可见时触发 if (pageVisibility == 'hidden') {document.title = '主人,你去哪儿了?'}// 页面变为可见时触发 if (pageVisibility == 'visible') {document.title = '主人,你终于回来了?'}})}()</script></body></html>
效果
document.visibilityState
监听浏览器最小化
document.hidden
表示页面是否隐藏的布尔值。页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开的vscode
遮住了浏览器)。
document.visibilityState
值:
hidden:页面在后台标签页中或者浏览器最小化visible:页面在前台标签页中prerender:页面在屏幕外执行预渲染处理document.hidden
的值为 trueunloaded:页面正在从内存中卸载
visibilitychange事件:当文档从可见变为不可见或者从不可见变为可见时,会触发该事件
这样,我们可以监听visibilitychange
事件,当该事件触发时,获取document.hidden
的值,根据该值进行页面一些事件的处理