看文章的时候看到一个例子:
//判断当前选项卡能否在视图(焦点)中:document.hiddenconst isBrowserTabInView = () => document.hidden;isBrowserTabInView();// Result: returns true or false depending on if tab is in view / focus
document.hidden
?还有这种属性?赶紧补课 。
继续看下面的例子,还有visibilitychange
可监听事件,这个事件里可以获取document.hidden
和document.visibilityState
的值。
visibilityState
共有3种状态,其中hidden
和visible
状态所有浏览器都支持,prerender
则是可选状态,非必需。重点研究下hidden
状态,分为四种情况:tab
页切换、客户或者系统关闭tab
页或者浏览器窗口。也就是说,页面卸载之前,document.visibilityState
属性肯定会变成hidden
当document.visibilityState
属性返回visible
时,document.hidden
属性返回false
;其余情况下,都返回true
。
可以这样来获取当前页面的状态:
document.addEventListener("visibilitychange", function () { // 客户离开了当前页面 if (document.visibilityState === "hidden") { document.title = "页面不可见"; } // 客户打开或者回到页面 if (document.visibilityState === "visible") { document.title = "页面可见"; } });
Page Visibility
相关的API
有document.hidden
,document.visibilityState
和onvisibilitychange
hidden
的值取决于visibilityState
visibilitychange
获取hidden
或者visibilityState
的值参考文章:
Page Visibility API 教程
Page Lifecycle API 教程