document.visibilityState

看文章的时候看到一个例子:

//判断当前选项卡是否在视图(焦点)中:document.hidden
const isBrowserTabInView = () => document.hidden;
isBrowserTabInView();
// Result: returns true or false depending on if tab is in view / focus

document.hidden?还有这种属性?赶紧补课 。

document.hidden

document.hidden

只读?在哪里赋值呢?搜索到了[document.visibilityState]属性。

继续看下面的例子,还有visibilitychange 可监听事件,这个事件里可以获取document.hiddendocument.visibilityState的值。

document.visibilityState

visibilityState

visibilityState 共有3种状态,其中hiddenvisible状态所有浏览器都支持,prerender则是可选状态,非必须。重点研究下hidden状态,分为四种情况:

  • 文档处于背景标签页状态
  • 窗口处于最小化状态
  • 操作系统处于“锁屏状态”(windows锁屏也可)
  • 页面将要卸载状态:包括tab页切换、用户或系统关闭tab页或浏览器窗口。也就是说,页面卸载之前,document.visibilityState属性一定会变成hidden
document.hidden和document.visibilityState的关系

document.visibilityState属性返回visible时,document.hidden属性返回false;其他情况下,都返回true

onvisibilitychange

可以这样来获取当前页面的状态:

   document.addEventListener("visibilitychange", function () {
            // 用户离开了当前页面
            if (document.visibilityState === "hidden") {
                document.title = "页面不可见";
            }
            // 用户打开或回到页面
            if (document.visibilityState === "visible") {
                document.title = "页面可见";
            }
        });
总结
  • Page Visibility 相关的API
    document.hiddendocument.visibilityStateonvisibilitychange
  • hidden的值取决于visibilityState
  • 页面状态可通过visibilitychange获取hiddenvisibilityState的值

参考文章:
[Page Visibility API 教程]
[Page Lifecycle API 教程]

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土豆片片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值