可禁用screen wake lock api以阻止网页强制保持屏幕常亮,方法包括:一、通过地址栏站点权限禁止;二、在chrome://flags中全局禁用;三、用ublock origin注入规则拦截;四、开发者工具控制台覆盖对象;五、windows组策略强制禁用。

如果您在使用谷歌浏览器时发现某个网页擅自启用 Screen Wake Lock API 导致屏幕无法自动熄灭,影响设备续航或用户体验,则可能是该页面在用户未明确授权的情况下调用了 navigator.wakeLock.request('screen')。以下是禁用或规避该行为的具体操作方案:
一、通过地址栏站点权限强制禁止 Wake Lock
Chrome 提供了基于域名的细粒度权限控制机制,可直接阻止特定网站请求屏幕常亮权限。该方法无需安装扩展,适用于已知问题域名,且权限设置持久生效。
1、在 Chrome 地址栏中输入目标网页的完整 URL(例如 https://example.com),然后按回车访问。
2、点击地址栏左侧的锁形图标或“站点信息”按钮。
3、在弹出面板中点击“网站设置”。
4、向下滚动至“权限”区域,找到“防止屏幕进入睡眠”选项。
5、将其设置为“禁止”,并关闭当前标签页后重新加载页面。
二、通过 chrome://flags 全局禁用 Screen Wake Lock API
该方式从浏览器底层实验性开关中彻底关闭 Wake Lock 功能,对所有网页生效,不依赖域名白名单,但属于非稳定标志,可能随 Chrome 版本更新被移除或重命名。
1、在 Chrome 地址栏中输入 chrome://flags 并按回车。
2、在右上角搜索框中输入 wake lock。
3、定位到名为“Screen Wake Lock API”的条目。
4、点击右侧下拉菜单,选择“Disabled”。
5、点击页面右下角的“重启”按钮使设置生效。
三、使用 uBlock Origin 等扩展注入规则拦截 wakeLock 调用
内容屏蔽类扩展支持脚本级注入规则,可在资源加载前直接替换或阻断 navigator.wakeLock 对象定义,实现零延迟拦截,不影响页面其他 JavaScript 功能执行。
1、安装支持自定义过滤规则的扩展,如 uBlock Origin 或 AdGuard。
2、打开扩展弹窗,进入“仪表板”→“过滤器”→“我的过滤器”。
一款AI工具,主要用于通过后台进程运行 Codex CLI、Claude Code、OpenCode 或 Pi Coding Agent,实现程序化控制,适合需要提升相关任务效率的用户。
3、添加如下规则行:example.com##script:inject(no-wakelock.js)(将 example.com 替换为目标域名)。
4、保存后刷新网页,检查开发者工具控制台是否仍出现 navigator.wakeLock 相关调用日志。
5、若需全局拦截,可添加通用规则:*$script,redirect=noop.js,domain=~localhost|~127.0.0.1|~chromium.org 并启用“高级用户模式”。
四、通过开发者工具控制台覆盖 navigator.wakeLock 对象
该方法在当前页面运行时动态重写 Wake Lock 接口,使其 request 方法立即返回拒绝 Promise,适用于单次调试、临时访问或验证问题是否由该 API 引起。
1、打开目标网页,按 F12 打开开发者工具。
2、切换至“控制台”(Console)标签页。
3、粘贴并执行以下代码:Object.defineProperty(navigator, 'wakeLock', { value: { request: () => Promise.reject(new Error('WakeLock disabled')) } });
4、刷新页面,观察视频播放或交互流程中是否仍触发屏幕常亮行为。
5、关闭该标签页后,此覆盖即失效,不影响其他页面。
五、通过 Windows 组策略强制禁用(仅限专业版/企业版)
对于企业环境或需系统级统一管控的场景,可通过本地组策略编辑器禁用 Chrome 的 Wake Lock API,该策略优先级高于用户侧 flags 和站点设置,且无法被普通用户绕过。
1、按 Win + R 输入 gpedit.msc 打开组策略编辑器。
2、导航至:计算机配置 → 管理模板 → Google → Google Chrome → 隐私设置。
3、双击“启用屏幕唤醒锁定 API”策略项。
4、选择“已禁用”,点击“确定”。
5、在命令提示符中执行 gpupdate /force 刷新策略,重启 Chrome 生效。










