Chrome 138+版本手动安装V2脚本插件被拒载,因强制拦截未适配V3的manifest.json;需升级为V3(改manifest_version、service_worker、host_permissions等)或临时启用策略/绕过校验。
谷歌浏览器更新到138及以上版本后,手动安装的脚本插件(如Tampermonkey用户脚本、自定义JS注入包)常因manifest.json仍为V2格式而直接被拒载,提示“无法安装扩展程序,因为它使用了不受支持的清单版本”。这并非脚本本身失效,而是Chrome强制拦截了未适配V3规范的打包结构。
打开插件所在文件夹,用文本编辑器打开manifest.json → 查看第一行是否为"manifest_version": 2。若存在且无后续v3必需字段(如service_worker、host_permissions),即确认为V2格式,必须改造或绕过。
注意:仅修改"manifest_version": 3而不重构其他字段会导致后台脚本不执行、内容脚本无法注入等静默失败,【不可跳过后续迁移步骤】。
第一步:将"manifest_version": 2改为3;
第二步:删除"background"下的"scripts"和"persistent"字段,改写为"background": {"service_worker": "background.js"};
第三步:将原"content_scripts"中"run_at": "document_idle"等字段保留,但必须确保其"matches"域名已声明在"host_permissions"数组中,例如"host_permissions": ["*://*.youtube.com/*", "https://example.com/*"];
第四步:若脚本需拦截或改写网络请求,移除"webRequestBlocking"权限,改用"permissions": ["declarativeNetRequest"]并配套提供rules.json文件;
这一步操作起来很简单,直接替换字段即可,但漏掉host_permissions声明会导致内容脚本完全不加载,且无任何报错提示——这是最常踩的坑。
方法一:通过chrome://flags启用实验性开关
在地址栏输入chrome://flags/#allow-legacy-mv2-extensions → 设为Enabled → 重启浏览器;
方法二:Windows注册表强制放行
按Win+R输入regedit → 导航至HKEY_LOCAL_MACHINESOFTWAREPoliciesGoogleChrome → 新建DWORD值ExtensionManifestV2Availability → 数值数据设为2 → 进入chrome://policy/点“重新加载政策” → 重启浏览器;
【该策略在Chrome 140+版本中已被彻底移除,仅适用于138–139.x版本】。
若插件本质只是单个JS文件(如GreaseMonkey脚本),无需打包为扩展:打开目标网页 → F12唤出开发者工具 → 切换到Console标签页 → 粘贴脚本代码后回车执行;
更持久的做法是安装Tampermonkey → 在其界面内新建用户脚本 → 将原JS内容粘贴进去 → 保存 → 自动按MV3规范托管运行;
这一步不需要碰manifest.json,完全规避了版本兼容问题,适合纯功能脚本用户。