今天在知乎上看到一篇文章,说到了用window.blur
和 window.focus
事件来动态改变网页的title, Page Visibility这么强大的功能只能怀才不遇api
在使用浏览器的时,用户经常是打开多个网页,当一个网页是可见或点击选中的状态时 Page Visibility API 能够让你获取到这种状态。Page Visibility作的事情很简单,就是判断页面是否课件。浏览器
两个属性,一个方法wordpress
document.hidden
(只读)
返回一个布尔值,显示当前页面是否不可见。动画
document.visibilityState
(只读)
是一个用来展现文档可见性状态的字符串。可能的值:spa
visible
: 页面内容至少是部分可见。 在实际中,这意味着页面是非最小化窗口的前景选项卡。操作系统
hidden
: 页面内容对用户不可见。 在实际中,这意味着文档能够是一个后台标签,或是最小化窗口的一部分,或是在操做系统锁屏激活的状态下。code
prerender
: 页面内容正在被预渲染且对用户是不可见的(被document.hidden当作隐藏). 文档可能初始状态为prerender,但毫不会从其它值转为该值。 注释:浏览器支持是可选的。视频
unloaded
: 页面正在从内存中卸载。 注释:浏览器支持是可选的事件
visibilitychange
页面状态切换时的事件。图片
focus、blur
事件的一些区别。focus、blur
会在点击地址栏,书签时触发。Visibility
不会触发
多窗口模式下,Visibility
不会触发。
页面直接最小化,focus、blur
和Visibility
正常触发。
牢记定义: 文档是一个后台标签,或是最小化窗口的一部分,或是在操做系统锁屏激活的状态下。
使用 Visibility
能够节省资源,当页面不可见的时候,就能够让页面休息休息了,一些动画也能够暂停,或者播放的视频暂停,很是贴心。
或者一个打开一个站点多个页面,在其中一个页面登陆,切换到其它页面的时候就能够自动登陆。
通过了几年的发展,如今Page Visibility API 的兼容性已经很是良好,能够放心使用。