上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: jinchamchanwaji - 

[软件/游戏] 逛了大半个月问答区,我总结出油猴脚本 90% 常见问题的排查思路

[复制链接]
  • TA的每日心情
    开心
    2026-6-12 17:17
  • 签到天数: 97 天

    [LV.6]常住居民II

    199

    主题

    50

    回帖

    614

    积分

    专家

    积分
    614
    发表在  昨天 13:24 | 显示全部楼层 | 阅读模式

    混油猴也有几年了,最近没事就泡问答互助区,发现很多新人遇到的问题其实都有共通的排查路径。Tampermonkey 全球用户早就破千万了,但真正会调试脚本的人其实不多,大多数人遇到脚本挂了就束手无策。

    今天整理一份通用排查手册,按照这个流程走,90% 的常见问题基本都能自己定位到原因,不用等别人回复。


    🔍 第一步:先确认最基础的问题(80% 的人栽在这里)

    很多时候脚本不生效真不是代码的锅,是基础设置没搞对:

    1. 先看脚本有没有启用:打开油猴管理面板,确认脚本开关是打开的,别装了忘了开
    2. 确认匹配的网址对不对:看脚本头部的 @match 规则,是不是和当前页面域名对得上,很多脚本只在特定子页面生效
    3. 刷新页面硬清缓存:Ctrl+F5 强制刷新,有时候浏览器缓存了旧页面,新脚本没加载上
    4. 看是不是被广告拦截扩展拦了:uBlock、AdGuard 这类扩展有时候会误拦脚本的资源请求,临时关了试试

    这四步走完,至少能排除一半的 "脚本用不了" 问题。


    🧩 第二步:脚本冲突排查(多脚本用户必看)

    如果你装了十几个甚至几十个脚本,冲突是迟早的事。常见现象:

    • 单独开每个脚本都正常,一起开就出 bug
    • 页面元素错乱、按钮点不动、功能时好时坏

    排查方法很简单:二分法禁用

    1. 先禁用一半脚本,刷新看问题还在不在
    2. 如果还在,问题就在剩下启用的这一半里;如果不在了,问题就在刚禁用的那一半里
    3. 反复缩小范围,最后定位到冲突的两个脚本
      .
      最容易冲突的类型:都修改同一个页面元素、都劫持了同一个 XHR 请求、都注入了同名的全局变量。找到冲突后要么二选一,要么去脚本作者页反馈。

    📋 第三步:看控制台报错(进阶必学)

    这是最核心的排查手段,不会看控制台等于瞎猜:

    1. 按 F12 打开开发者工具,切到 Console(控制台)标签
    2. 刷新页面,看红色的报错信息
    3. 重点看报错里的文件名和行号,如果指向你的脚本 ID,那就是这个脚本抛的错

    常见报错类型:

    • $ is not defined:脚本依赖 jQuery 但没注入,或者注入顺序不对
    • GM_xmlhttpRequest is not defined:油猴 API 没权限,看脚本头部有没有加 @grant 声明
    • Cannot read properties of null:要操作的页面元素还没加载出来,脚本跑早了,需要加延迟或者用观察者

    🌐 第四步:跨域和权限问题(写脚本的人最常踩)

    很多自己写脚本的朋友,写的时候好好的,实际跑就挂,大概率是权限没搞对:

    • GM_ 系列 API 必须在头部声明 @grant:用了 GM_xmlhttpRequest 就必须加 // @grant GM_xmlhttpRequest,不然就是未定义

    • 跨域请求必须用油猴 API:普通的 fetch 和 axios 跨站会被 CORS 拦,必须用 GM_xmlhttpRequest 走扩展通道

    • 存储隔离问题:GM_setValue 和 localStorage 不是一回事,油猴存储是隔离的,不同脚本之间不互通


    💬 闲聊两句

    其实写油猴脚本真的很练前端基本功,DOM 操作、异步处理、正则匹配、网络请求,这些东西摸熟了,前端开发的底子也就差不多了。

    我身边好几个靠写油猴入门的朋友,后来都转去做前端开发和软件测试了。现在信息技术大厂前端、后端、测试岗位缺口都不小,全国多地有岗,待遇不错,稳定性也有保障,有想看看正式工作机会的可以了解下:
    https://jsj.top/f/o38ijj
    走内推通道反馈比自己投快很多。


    最后说一句,问答互助区的意义就是互相帮忙,提问的时候尽量把信息给全:什么浏览器、什么版本、装了哪些脚本、具体什么现象、控制台报什么错,信息越全别人越容易帮你定位。

    大家还有什么补充的排查技巧?欢迎评论区一起交流,我整理到主楼里。

    发表回复

    本版积分规则