当前位置: 首页 > news >正文

js监测页面可见性

监测切换页面

  • 检测页面的可见性状态
    • document.visibilityState:
    • document.hidden
    • visibilitychange 事件
  • js 检测页面切换至别的应用

检测页面的可见性状态

在JavaScript中,你可以使用Page Visibility API来检测页面的可见性状态。这个API提供了一组接口,允许你获取页面的可见性状态,并监听其变化。(在手机端好用,PC端切换浏览器标签页/窗口时也好用,但是切换应用不行)

document.visibilityState:

这个属性返回一个字符串,表示文档的可见性状态。可能的值有:

  1. visible : 页面是可见的;
  2. hidden : 页面是不可见的;
  3. “prerender”:页面正在被预渲染(这个状态在某些浏览器中可能不受支持)。

document.hidden

这是一个布尔值,true 表示页面不可见,false 表示页面可见。它是 document.visibilityState 的一个简便属性,只检查页面是否可见或不可见。

visibilitychange 事件

你可以监听这个事件来检测页面可见性状态的变化。

// 获取初始的可见性状态
function handleVisibilityChange() {if (document.hidden) {console.log("页面现在是不可见的");// 在这里执行页面不可见时的操作,比如暂停视频播放、减少资源消耗等} else {console.log("页面现在是可见的");// 在这里执行页面可见时的操作,比如恢复视频播放、更新内容等}
}// 在页面加载时检查一次可见性状态
handleVisibilityChange();// 添加一个事件监听器来监听可见性状态的变化
document.addEventListener("visibilitychange", handleVisibilityChange, false);

js 检测页面切换至别的应用

在JavaScript中,检测用户是否将页面切换至别的应用(即页面失去焦点或浏览器标签页/窗口失去焦点)通常可以通过监听 blur 事件来实现。blur 事件会在元素(在这种情况下是 window 对象)失去焦点时触发。对于开发者来说,在页面切换到控制台时也会触发失焦,反之也会触发focus

// 当页面失去焦点时执行的函数
function onBlur() {console.log("页面已失去焦点");// 在这里可以添加你想要执行的代码,比如暂停视频播放、保存草稿等
}// 当页面获得焦点时执行的函数(可选)
function onFocus() {console.log("页面已获得焦点");// 在这里可以添加你想要执行的代码,比如恢复视频播放等
}// 为 window 对象添加 blur 和 focus 事件监听器
window.addEventListener('blur', onBlur);
window.addEventListener('focus', onFocus);
http://www.lryc.cn/news/519200.html

相关文章:

  • Android wifi常见问题及分析
  • EFCore HasDefaultValueSql
  • Win10微调大语言模型ChatGLM2-6B
  • 什么叫区块链?怎么保证区块链的安全性?
  • 一、智能体强化学习——强化学习基础
  • 【DES加密】
  • .NET中的框架和运行环境
  • 探索微软 M365 安全:全方位守护数字世界
  • 深入探索AI核心模型:CNN、RNN、GAN与Transformer
  • Java - Http 通讯
  • C++ Qt练习项目 QChar功能测试
  • android 官网刷机和线刷
  • 二叉树层序遍历 Leetcode102.二叉树的层序遍历
  • DELTA并联机械手视觉方案荣获2024年度机器人应用典型案例奖
  • Netty 入门学习
  • Magentic-One、AutoGen、LangGraph、CrewAI 或 OpenAI Swarm:哪种多 AI 代理框架最好?
  • openstack下如何生成centos9 centos10 和Ubuntu24 镜像
  • Kivy App开发之UX控件Slider滑块
  • CSS——22.静态伪类(伪类是选择不同元素状态)
  • python学opencv|读取图像(三十)使用cv2.getAffineTransform()函数倾斜拉伸图像
  • Unity3D中基于ILRuntime的组件化开发详解
  • ELK的搭建
  • 国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)
  • C#里使用libxl读取EXCEL文件里的图片并保存出来
  • 【开源免费】基于SpringBoot+Vue.JS企业级工位管理系统(JAVA毕业设计)
  • 美国大学的计算机科学专业排名
  • 机器学习实战——决策树:从原理到应用的深度解析
  • 开源生成式物理引擎Genesis,可模拟世界万物
  • kubernetes第七天
  • RK3588上CPU和GPU算力以及opencv resize的性能对比测试