Chrome MV3扩展background.js第3行匿名函数报错排查
问题根因
这是Manifest V3版本Chrome扩展的固有机制导致的报错:
- 只要
manifest.json的action字段配置了default_popup,Chrome就会把扩展图标点击行为固定为打开指定popup页面,此时chrome.action.onClicked事件会被彻底禁用,不会对外触发。 - 部分Chrome版本下,Service Worker初始化阶段如果给这个已被禁用的事件注册监听器,会直接抛出类型错误;由于代码空行、源位置偏移,错误最终会定位到你看到的
background.js:3 (anonymous function)位置。
修复方案
根据实际需求二选一即可:
- 不需要popup弹窗,仅需点击图标直接执行逻辑:删除
manifest.json中action配置下的default_popup字段,修改后的配置参考:
"action": { "default_icon": { "16": "/images/cat.png" } }
修改后重新加载扩展,监听器即可正常注册、触发。
- 需要保留popup弹窗:删除
background.js中注册chrome.action.onClicked监听的相关代码,将图标点击后需要执行的逻辑迁移到popup页面对应的JS脚本中,在popup页面加载时运行即可。
内容的提问来源于stack exchange,提问作者helen
相关产品推荐
相关产品推荐

