禁用页面可见性API、注入自定义visibilityState脚本、使用Tampermonkey运行防检测脚本、模拟用户活动、移除visibilitychange监听器,可全面规避网页挂机空闲检测。

一、禁用页面可见性API检测
网页可通过document.visibilityState和visibilitychange事件判断用户是否切换标签页或最小化窗口,从而触发空闲检测。禁用该API可使页面始终报告“visible”状态,规避挂机识别逻辑。
1、在谷歌浏览器地址栏输入chrome://flags/并回车。
2、在搜索框中键入visibility。
3、找到Enable page visibility API选项,点击右侧下拉菜单,选择Disabled。
4、点击右下角Relaunch按钮重启浏览器。
二、注入自定义visibilityState脚本
通过开发者工具控制台或扩展注入脚本,强制覆盖document.visibilityState属性及visibilitychange事件监听器,使网页无法获取真实可见性状态。
1、打开目标网页,按F12调出开发者工具。
2、切换到Console标签页。
3、粘贴并执行以下代码:
Object.defineProperty(document, 'visibilityState', { value: 'visible', writable: false }); window.addEventListener = function(){};
4、刷新页面后,多数基于visibilityState的空闲检测将失效。
三、使用Tampermonkey运行防检测脚本
Tampermonkey支持持久化注入脚本,可自动在指定网页加载时屏蔽空闲检测相关API调用,避免每次手动操作。
1、前往Chrome网上应用店安装Tampermonkey扩展。
2、点击扩展图标,选择创建新脚本。
3、清空模板内容,粘贴以下脚本:
// ==UserScript==\n// @name 防挂机空闲检测\n// @match *://*/*\n// @run-at document-start\n// ==/UserScript==\nObject.defineProperty(document, 'hidden', { get: () => false });\nObject.defineProperty(document, 'visibilityState', { get: () => 'visible' });\nwindow.addEventListener = window.addEventListener.toString().includes('visibilitychange') ? function(){} : window.addEventListener;
4、按Ctrl+S保存,脚本将在所有页面自动启用。
四、模拟用户活动防止计时器触发
部分网站依赖setTimeout/setInterval监测用户输入间隔,通过定时触发鼠标移动或键盘事件可重置空闲计时器。
1、在目标网页按F12打开控制台。
2、执行以下循环模拟脚本:
setInterval(() => { const e = new MouseEvent('mousemove'); document.dispatchEvent(e); }, 30000);
3、该脚本每30秒触发一次鼠标移动事件,有效干扰基于无操作时长的挂机判定。
五、禁用JavaScript中的Page Visibility监听器
直接移除已注册的visibilitychange事件监听器,可阻断网页对标签页切换行为的响应。
1、在目标网页打开开发者工具,进入Sources面板。
2、按Ctrl+Shift+P打开命令菜单,输入Disable JavaScript并回车临时禁用JS(仅用于测试)。
3、重新启用JavaScript后,在Console中执行:
window.removeEventListener('visibilitychange', null);
4、若已知监听函数名(如onVisibilityChange),替换为window.removeEventListener('visibilitychange', onVisibilityChange)。











