判断当前页面是否可见。
使用Document.hidden
属性判断当前页面是否可见。
const isBrowserTabFocused = () => !document.hidden;
// true
isBrowserTabFocused();
Document.hidden
属性来自于浏览器Page Visibility API
。
该API
的设计目的是为了方便开发者监听页面的可见性的变化,包括如下组成部分:
为一个只读布尔值,表示当前页面是否被可见。
为一个只读字符串,表示页面当前的可见性状态,共有三个可选值:
当满足如下条件之一,为hidden
:
Tab
未处于激活状态除此之外,页面露出任何部分都属于visible
。
prerender
存在于支持预渲染
的浏览器。可以在用户不可见的状态下,预先把页面渲染出来,等到用户要浏览的时候,直接展示渲染好的网页。
当document.visibilityState
属性发生变化会触发visibilitychange
事件。
document.addEventListener('visibilitychange', function () {
if (document.visibilityState === 'hidden') {
console.log('当前页面不可见');
}
if (document.visibilityState === 'visible') {
console.log('当前页面可见');
}
});