
背景
因某个本地开发需求,需要用篡改猴(Tampermonkey)在特定页面注入脚本。脚本写好、安装完成、扩展已启用,但刷新页面后脚本始终没有执行。
排查过程
第一步:确认脚本是否被注入
在目标页面打开控制台(F12),执行:
javascript
document.querySelectorAll('script[src*="tampermonkey"]')
// 结果:NodeList []
返回空列表,说明篡改猴完全没有往页面注入任何内容,问题不在脚本逻辑本身,而在执行环境。
第二步:排查 @match 规则
检查脚本头部的 @match 是否与目标页面 URL 严格匹配,确认协议(http/https)、域名、端口均一致。这一步没有发现问题。
第三步:确认扩展权限
进入 chrome://extensions/ → 篡改猴详情 → "有权访问的网站" → 确认已设置为"在所有网站上"。权限正常,问题依然存在。
第四步:发现真正原因
在篡改猴编辑器顶部出现了一条黄色警告横幅:
"请启用开发者模式以允许用户脚本注入。点击这里了解如何操作。"
根因
Chrome 132 引入了对"用户脚本(User Scripts)"的新限制:用户脚本的注入权限与扩展程序的"开发者模式"是两个独立的开关。
即使已经在 chrome://extensions/ 页面右上角开启了"开发者模式",篡改猴的脚本注入仍然需要单独授权,否则脚本不会被执行。
解决方法
进入 chrome://extensions/ → 找到篡改猴 → 点击"详情" → 滚动到页面底部 → 开启**"允许运行用户脚本"**。
该选项的说明文字为:"此扩展程序将能够运行未经 Google 审核的代码。这可能不安全,仅在您清楚了解相关风险并确认操作安全的情况下,才应启用此功能。"
确认风险后启用,刷新目标页面,脚本正常执行。
小结
Chrome 132+ 将用户脚本注入作为一项独立权限管控,与扩展的开发者模式分开。如果你的篡改猴脚本安装正常、@match 配置正确、扩展权限已设为"在所有网站上",但脚本就是不执行,检查扩展详情页底部的**"允许运行用户脚本"**开关是否已开启。