Manifest V3中全局引入jQuery的配置是否正确?
Manifest V3配置中jQuery用法的问题分析
Background 部分的错误
Manifest V3 的 background 字段里,使用 service_worker 时不能添加js字段,原因有两点:
- Service Worker 仅支持通过
service_worker字段指定单个脚本文件,不支持js这种多脚本配置写法 - jQuery 依赖浏览器的DOM环境,但 Service Worker 运行在独立的后台上下文,没有DOM对象,就算强行引入也无法正常使用
正确的background配置应该是:
"background": { "service_worker": "background.js" }
Content Scripts 部分的顺序问题
content_scripts的js数组是按从上到下的顺序加载脚本的。你现在把content.js放在jquery-3.6.1.min.js前面,如果content.js里用到了jQuery,会因为jQuery还未加载完成而报错。
正确的顺序需要把jQuery放在前面:
"content_scripts": [{ "matches": ["<all_urls>"], "js": ["jquery-3.6.1.min.js", "content.js"] }]
其他正常配置说明
host_permissions设置为["*://*/*"]配合matches: ["<all_urls>"],可以确保content脚本在所有URL下注入jQuery,这部分配置是没问题的- 如果需要在popup里使用jQuery,直接在
popup/index.html里通过<script>标签引入即可,无需在Manifest配置中额外设置
内容的提问来源于stack exchange,提问作者Adi Elron
相关产品推荐
相关产品推荐

