前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >当前页面是否可见

当前页面是否可见

作者头像
公众号@魔术师卡颂
发布于 2020-08-26 01:44:07
发布于 2020-08-26 01:44:07
2K00
代码可运行
举报
文章被收录于专栏:魔术师卡颂魔术师卡颂
运行总次数:0
代码可运行

判断当前页面是否可见。


使用Document.hidden属性判断当前页面是否可见。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const isBrowserTabFocused = () => !document.hidden;

例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// true
isBrowserTabFocused(); 

扩展阅读

Document.hidden属性来自于浏览器Page Visibility API

API的设计目的是为了方便开发者监听页面的可见性的变化,包括如下组成部分:

Document.hidden

为一个只读布尔值,表示当前页面是否被可见。

document.visibilityState

为一个只读字符串,表示页面当前的可见性状态,共有三个可选值:

  • hidden:页面不可见
  • visible:页面部分可见
  • prerender:页面即将或正在渲染,处于不可见状态

当满足如下条件之一,为hidden

  • 浏览器窗口最小化
  • 当前浏览器Tab未处于激活状态
  • 浏览器将要卸载(unload)页面
  • 移动端设备触发触发锁屏

除此之外,页面露出任何部分都属于visible

prerender存在于支持预渲染的浏览器。可以在用户不可见的状态下,预先把页面渲染出来,等到用户要浏览的时候,直接展示渲染好的网页。

visibilitychange事件

document.visibilityState属性发生变化会触发visibilitychange事件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.addEventListener('visibilitychange', function () {
  if (document.visibilityState === 'hidden') {
    console.log('当前页面不可见');
  }

  if (document.visibilityState === 'visible') {
    console.log('当前页面可见');
  }
});
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 魔术师卡颂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端踩坑系列《五》
不知不觉这个系列已经更新到了第五篇,我尽量将每周遇到的问题和大家一起分享。这里谈到了分享,那就不仅仅是个人的事情,我觉得大家都可以一起参与进来。之所以想写这个系列,本身就是想提升自我解决问题的能力,慢慢地也培养一种记录问题的习惯,我也希望大家能够一起完成!
GopalFeng
2020/09/24
3960
前端踩坑系列《五》
Page Visibility API 教程
但是,这些事件在手机上可能不会触发,页面就直接关闭了。因为手机系统可以将一个进程直接转入后台,然后杀死。
ruanyf
2018/11/22
6590
JavaScript 页面可见性 Page Visibility API 监听用户离开页面
Page Visibility API 用来检测页面当前是否可见,以及打开网页的时间等
Leophen
2020/10/28
2.7K0
前端-如何精确统计页面停留时长
页面停留时间(Time on Page)简称 Tp,是网站分析中很常见的一个指标,用于反映用户在某些页面上停留时间的长短,传统的Tp统计方法会存在一定的统计盲区,比如无法监控单页应用,没有考虑用户切换Tab、最小化窗口等操作场景。 基于上述背景,重新调研和实现了精确统计页面停留时长的方案,需要 兼容单页应用和多页应用,并且不耦合或入侵业务代码。
grain先森
2019/03/29
10K0
前端-如何精确统计页面停留时长
那些关于DOM的常见Hook封装(二)
本文是深入浅出 ahooks 源码系列文章的第十五篇,这个系列的目标主要有以下几点:
GopalFeng
2022/08/01
9030
Web Visibilitychange
https://serious-lose.notion.site/Web-Visibilitychange-496d9051bda741e19fc0890913b3565e
全栈程序员站长
2022/09/07
1540
离开和进入html页面时改变title
离开和进入页面时改变网页标题,最近也才刚刚开始js学习,下面这段代码简单就是说访客如果离开你的网站之后,站点标题会发生变化。原理是使用了HTML5的Page Visibility API 目前页面可见性API有两个属性,一个事件:
qiangzai
2021/12/21
2.1K0
离开和进入html页面时改变title
没了解过的Web API
getBattery getBattery方法提供了系统的电量信息,返回一个promise对象 navigator.getBattery().then(res => { console.log(res) /** 四个属性 charging 是否在充电 chargingTime 充满电所需时间 dischargingTime 当前电量可使用时间 level 剩余电量 */ /** 添加事件 onchargingchange 监听充电状态改变
peng_tianyu
2022/12/15
5170
没了解过的Web API
js判断用户进入和离开当前页面
VisibilityChange 事件;用于判断用户是否离开当前页面 // 页面的 visibility 属性可能返回三种状态 // prerender,visible 和 hidden let pageVisibility = document.visibilityState; // 监听 visibility change 事件 document.addEventListener('visibilitychange', function() { // 页面变为不可见时触发 if (do
河湾欢儿
2018/09/13
6.4K0
你不知道的JavaScript APIs
这是一个鲜为人知的 web API,在JS现状调查[1]中,它的认知度排名倒数第四。它可以让你知道用户何时离开了页面。准确地说,只要页面的可见性状态发生变化,无论是用户最小化、最大化窗口还是切换标签页,该API都会触发一个事件。
chuckQu
2022/11/28
1K0
你不知道的JavaScript APIs
document.visibilityState 监听浏览器最小化,tab标签栏之间的切换状态
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/52
joshua317
2021/08/31
1.7K0
正确发送统计数据到服务器
navigator.sendBeacon() 方法支持我们使用 POST 的请求方式将少量的数据异步发送到服务器进行存储。同时避免使用一些传统技术,例如:使用 gif 格式的 img 来发送数据。
前端小鑫同学
2022/12/26
9530
正确发送统计数据到服务器
关于HTML面试题汇总之visibility
一、页面可见性(visibility) 主要提供两个属性,一个事件(都在document对象上): 1. 属性:    1.1.  hidden:获取或设置当前页面的可见性,boolean值;    1.2. visibilityState: 获取当前页面可见性状态,值为hidden、visibility其中一个 2. 事件:visibilityChange:页面可见性发生改变时触发的事件 3. 由于各类浏览器的支持情况不一致,都需要加上私有属性的前缀,如 webkit、moz、ms、o等。在ie9-不支持
sam dragon
2018/01/17
8500
浏览器标签tab窗口切换时事件状态侦听
项目中使用到了websocket,用户在浏览器窗口切换或者浏览器最下话后,websocket的状态有可能断开,且没有重试机制,所以想通过用户回到当前页面的时候,系统能够自动刷新,重新连接socket
joshua317
2021/08/31
2.5K0
js 检测浏览器 鼠标状态 页面状态
有勇气的牛排
2023/06/25
3930
浏览器visibilitychange事件
1. 项目中,从一个页面进入到另一个页面,然后在这个页面做一些修改后返回到第一个页面,这个时候第一个页面没有刷新只类似tab切换,所以用户的修改未生效。使用html的浏览器事件 visibilitychange
全栈程序员站长
2022/09/07
8280
你不知道的JavaScript APIs
这个APi 可以让我们知道用户何时离开了页面。准确地说,只要页面的可见性状态发生变化,无论是用户最小化、最大化窗口还是切换标签,该API都会触发一个事件 visibilitychange 。
前端小智@大迁世界
2022/10/28
8100
前端常见技术点-HTML扫盲(17问)
根据 <!DOCTYPE> 是否存在选择呈现模式,被称为 <!DOCTYPE> 切换或 <!DOCTYPE> 侦测。
用户5997198
2019/08/09
6120
妙趣横生的HTML5 Page Visibility API
最近浏览36kr 的网页的时候偶然发现一个有趣的情况:当浏览器Tab 处于非当前页的时候,36kr 的标题栏会自动换成可爱的大白字符形象。Jeff 在第一次看到的时候就知道这种效果是通过HTML5 的
Jeff
2018/01/22
9650
妙趣横生的HTML5 Page Visibility API
Page Lifecycle API 教程
两周前,我介绍了 Page Visibility API。有了它,就可以监听各种情况的网页卸载。
ruanyf
2018/12/06
8760
Page Lifecycle API 教程
相关推荐
前端踩坑系列《五》
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验