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

防止电脑息屏 html

防止电脑息屏 html

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>防息屏+防重复点击方案</title><!-- NoSleep.js 用于兼容旧版浏览器 --><script src="https://cdn.jsdelivr.net/npm/nosleep.js@0.12.0/dist/NoSleep.min.js"></script>
</head>
<body><button id="startBtn">启动防息屏</button><button id="timerBtn">测试按钮(防重复点击)</button><script>
// 第一部分:防息屏核心逻辑(兼容多浏览器)
let wakeLock = null;
let noSleep = new NoSleep();
let isIE = /*@cc_on!@*/false || !!document.documentMode; // IE检测[10]// 现代浏览器方案
async function modernWakeLock() {if ('wakeLock' in navigator) {try {wakeLock = await navigator.wakeLock.request('screen');// 监听页面可见性变化document.addEventListener('visibilitychange', async () => {if (document.visibilityState === 'visible' && !wakeLock) {wakeLock = await navigator.wakeLock.request('screen');}});} catch(err) {console.log('Wake Lock API不可用,回退到NoSleep.js');noSleep.enable(); // 自动启用备选方案[2][9]}} else {noSleep.enable();}
}// IE浏览器方案
function IEWakeLock() {if(isIE && window.ActiveXObject) {try {const objWs = new ActiveXObject("Wscript.Shell");setInterval(() => objWs.SendKeys("{SCROLLLOCK}"), 60000);} catch(e) {alert("请启用ActiveX控件!");}}
}// 第二部分:防重复点击逻辑(通用方案)
let clickTimer = null;
document.getElementById('timerBtn').addEventListener('click', function() {const btn = this;btn.disabled = true;btn.textContent = `请等待(30)`;clickTimer = setInterval(() => {const remain = parseInt(btn.textContent.match(/\d+/)[0]) - 1;btn.textContent = remain > 0 ? `请等待(${remain})` : "测试按钮";if(remain <= 0) {clearInterval(clickTimer);btn.disabled = false;}}, 1000);
});// 第三部分:启动逻辑(需用户交互)
document.getElementById('startBtn').addEventListener('click', function() {if(isIE) {IEWakeLock();} else {modernWakeLock();// 尝试自动进入全屏模式if(document.documentElement.requestFullscreen) {document.documentElement.requestFullscreen();}}this.disabled = true;this.textContent = "防息屏已激活";
});// 第四部分:安全释放资源
window.addEventListener('beforeunload', () => {if(wakeLock) wakeLock.release();noSleep.disable();clearInterval(clickTimer);
});
</script></body>
</html>
http://www.lryc.cn/news/591393.html

相关文章:

  • 人类社会发展过程中的熵增定律
  • 共指消解技术全解析:从语言学规则到深度学习(附论文精读)
  • 01-提问的艺术:如何让AI听懂“人话”
  • Day23| 39. 组合总和、40.组合总和II、131.分割回文串
  • 【47】MFC入门到精通——MFC编辑框 按回车键 程序闪退问题 ,关闭 ESC程序退出 问题
  • 泛型与类型安全深度解析及响应式API实战
  • python网络爬虫(第二步:安装浏览器驱动,驱动浏览器加载网页、批量下载资源)
  • 板凳-------Mysql cookbook学习 (十一--------12)
  • 20250717在荣品的PRO-RK3566开发板的Android13系统下解决点屏出现问题unsupport command data type: 217
  • x3CTF-2025-web-复现
  • 深度学习 -- Tensor属性及torch梯度计算
  • 计算机的网络体系及协议模型介绍
  • 外贸ERP软件有哪些?八大热门erp软件功能测评
  • centos中新增硬盘挂载文件夹
  • 河南萌新联赛2025第(一)场:河南工业大学(补题)
  • 亚远景科技助力长城汽车,开启智能研发新征程
  • 视频安全新思路:VRM视频分片错序加密技术
  • C++性能优化与现代工程实践:打造高效可靠的软件系统
  • C++性能优化
  • 91套商业策划创业融资计划书PPT模版
  • Java Stream API性能优化:原理深度解析与实战指南
  • PyTorch边界感知上下文神经网络BA-Net在医学图像分割中的应用
  • 多端协同的招聘系统源码开发指南:小程序+APP一体化设计
  • Android 实现:当后台数据限制开启时,仅限制互联网APN。
  • 小程序按住说话
  • 紫金桥跨平台监控组态软件 | 功能强大,支持复杂工业场景,与西门子 PLC 无缝兼容
  • 【Linux基础知识系列】第五十二篇 - 初识Linux的内置命令
  • 三十四、【扩展工具篇】JSON 格式化与解析:集成 Monaco Editor 打造在线 JSON 工具
  • 物联网主机在化工园区安全风险智能化管控平台中的应用
  • day055-Dockerfile与常用指令