Manifest V3版Chrome扩展配置web_accessible_resources报错如何解决
问题原因
该报错完全由web_accessible_resources的定义不符合Manifest V3规范导致。Manifest V2版本中该字段可直接传入资源路径字符串数组,但Manifest V3对该字段的格式做了调整,要求数组内的每一项都必须是字典对象,不能直接放字符串,因此触发了格式解析错误。
解决方案
1. 修正manifest.json配置
将web_accessible_resources字段调整为如下格式:
"web_accessible_resources": [ { "resources": ["html/content.html"], "matches": ["<all_urls>"] } ]
字段说明:
resources:填写你需要开放访问的资源路径列表,支持通配符,比如"html/*"就可以开放html文件夹下的所有文件matches:填写允许访问该资源的站点匹配规则,<all_urls>表示所有站点都可访问,如果你只需要在特定站点使用扩展,可以替换为对应站点的匹配规则,缩小权限范围提升安全性。
2. 可选:优化资源路径写法
chrome.runtime.getURL的寻址根路径是扩展的根目录(即manifest.json所在的目录),如果你的content.html放在根目录下的html文件夹中,直接写chrome.runtime.getURL('html/content.html')即可,无需加../前缀。
修改完成后重载扩展即可解决报错,HTML文件可以正常加载注入。
内容的提问来源于stack exchange,提问作者Mikkel Fennefoss
相关产品推荐
相关产品推荐

