谷歌浏览器更新后脚本插件Manifest V3不兼容问题如何解决

作者:袖梨 2026-06-11

Chrome 138+版本手动安装V2脚本插件被拒载,因强制拦截未适配V3的manifest.json;需升级为V3(改manifest_version、service_worker、host_permissions等)或临时启用策略/绕过校验。

谷歌浏览器更新到138及以上版本后,手动安装的脚本插件(如Tampermonkey用户脚本、自定义JS注入包)常因manifest.json仍为V2格式而直接被拒载,提示“无法安装扩展程序,因为它使用了不受支持的清单版本”。这并非脚本本身失效,而是Chrome强制拦截了未适配V3规范的打包结构。

确认插件是否真为V2格式

打开插件所在文件夹,用文本编辑器打开manifest.json → 查看第一行是否为"manifest_version": 2。若存在且无后续v3必需字段(如service_workerhost_permissions),即确认为V2格式,必须改造或绕过。

注意:仅修改"manifest_version": 3而不重构其他字段会导致后台脚本不执行、内容脚本无法注入等静默失败,【不可跳过后续迁移步骤】

方法一:升级为合规Manifest V3(推荐,一劳永逸)

第一步:将"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声明会导致内容脚本完全不加载,且无任何报错提示——这是最常踩的坑。

方法二:临时启用V2支持(仅限调试或紧急使用)

方法一:通过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,完全规避了版本兼容问题,适合纯功能脚本用户。

相关文章

精彩推荐