脚本不生效怎么办 — 排查清单
装了脚本但页面上完全没动静?别慌,按下面的排查顺序走。
第一步:脚本启用了吗
最常见的低级错误。打开 设置 → 用户脚本:
- 确认脚本列表里该脚本的开关是开的
- 确认全局的「启用用户脚本」开关也是开的
第二步:匹配规则覆盖了当前页面吗
脚本头部的 @match / @include / @exclude 决定脚本在哪些页面执行。如果当前页面不在匹配范围内,脚本不会运行。
举例——脚本写了:
@match https://www.baidu.com/s*
但你打开的是 https://m.baidu.com/s?wd=xxx(移动版),域名不一样,脚本不会执行。改匹配规则加上移动域名就行。
第三步:是不是 PC 专属脚本
很多 Greasy Fork 上的脚本专为 PC 浏览器写,依赖:
- 桌面端特定的 DOM 结构(移动端页面完全不同)
- 桌面级浏览器扩展 API(XBrowser 不支持)
- 键盘快捷键(手机没键盘)
这时候脚本作者没说明,脚本也不会报错——就是静静不执行。换一个标注了「移动端兼容」的脚本。
第四步:广告拦截冲突
XBrowser 本身有广告拦截功能,如果脚本也是用来去广告的,两者可能冲突。临时关掉其中一个试试看。
第五步:脚本是不是被页面 CSP 阻止
一些严格的网站(如 GitHub)设置了内容安全策略(CSP),可能阻止外部脚本注入。这种情况只能换脚本或换浏览器,XBrowser 无法绕过网站自身的 CSP 限制。
第六步:GM 函数兼容性
部分脚本重度依赖 GM_* 函数,而 XBrowser 对某些 GM 函数的兼容性可能不如 TamperMonkey 官方插件。常见问题:
| 函数 | 说明 |
|---|---|
GM_xmlhttpRequest | 大多数场景兼容,极少见问题 |
GM_download | V5.6.0 优化过,之前版本可能有问题 |
GM_cookie | V5.6.0 优化过兼容性 |
GM_registerMenuCommand | 在浏览器菜单里注册命令,XBrowser 是否完整支持以官方为准 |
第七步:旧脚本数据干扰
如果脚本更新后不生效,可能是旧版本留下的数据冲突了。在脚本列表里:
- 长按该脚本
- 选「删除脚本及数据」
- 重新安装最新版脚本
V5.6.0 已修复「删除脚本时不同步删除数据」的问题,新版本直接删就行。
第八步:刷新试试
有时候脚本在页面加载过程中执行,但页面后来被 AJAX 局部刷新了,脚本对刷新的那部分不会再生效。手动刷新整个页面让脚本重新注入。
找不到原因?
把脚本名和匹配的页面记下来,去 Greasy Fork 评论区或 XBrowser 官方反馈渠道查一下是不是已知的兼容性问题。