{
// 扩展名称
"name": "MyExtension",
// 版本。由1到4个整数构成。多个整数间用"."隔开
"version": "1.0",
// manifest文件版本号。Chrome18开始必须为2
"manifest_version": 2,
// 描述。132个字符以内
"description": "",
// 扩展图标。推荐大小16,48,128
"icons": {
"16": "image/icon-16.png",
"48": "image/icon-48.png",
"128": "image/icon-128.png"
},
// 语言
"default_locale": "en",
// 地址栏右侧图标管理,含图标及弹出页面的设置等
// 建议至少保留一个设置,不然扩展图标是暗的
"browser_action": {
"default_icon": "image/icon-128.png",
"default_title": "My Message",
"default_popup": "html/browser.html"
},
// 地址栏最后附加图标。含图标及行为等
"page_action": {
"default_icon": "image/icon-48.png",
"default_title": "My Test",
"default_popup": "html/page.html"
},
// popup页面配置
"action": {
// popup页面的路径(根目录为最终build生成的插件包目录)
"default_popup": "index.html",
// 浏览器插件按钮的图标
"default_icon": {
"16": "/images/app.png",
"32": "/images/app.png",
"48": "/images/app.png",
"128": "/images/app.png"
},
// 浏览器插件按钮hover显示的文字
"default_title": "React CRX MV3"
},
// 主题,用于更改整个浏览器的外观
"theme": {},
// 指定扩展需要跳转到的URL
"app": {},
// 指定扩展进程的background运行环境及运行脚本
"background": {
"scripts": [
"lib/jquery-3.3.1.min.js",
"js/background.js"
],
"page": "html/background.html"
},
// 替换页面
"chrome_url_overrides": {
"pageToOverride": "html/overrides.html"
},
// 指定在web页面运行的脚本/插入的css及运行/插入时机
"content_scripts": [
{
//应用于哪些页面地址(可以使用正则,<all_urls>表示匹配所有地址)
"matches": [
"https://www.baidu.com/*"
],
//注入到目标页面的css,注意不要污染目标页面的样式
"css": [
"css/mystyles.css"
],
// 注入到目标页面js,这个js是在沙盒里运行,与目标页面是隔离的,没有污染问题。
"js": [
"lib/jquery-3.3.1.min.js",
"js/content.js"
],
// 代码注入的时机,可选document_start、document_end、document_idle(默认)
"run_at": "document_idle"
}
],
// 安全策略
"content_security_policy": "",
"file_browser_handlers": [],
// 扩展的官方主页
"homepage_url": "http://xxx",
// 插件在隐私模式下的配置
"incognito": "spanning",
// 用户操作意图描述
"intents": {},
// 扩展唯一标识。不需要人为指定
"key": "",
// 扩展所需chrome的最小版本
"minimum_chrome_version": "1.0",
// 消息与本地处理模块映射
"nacl_modules": [],
// 是否允许脱机运行
"offline_enabled": true,
// ominbox即地址栏。用于响应地址栏的输入事件
"omnibox": {
"keyword": "myKey"
},
// 选项页。用于在扩展管理页面跳转到选项设置
"options_page": "aFile.html",
// 申请权限
"permissions": [
"https://www.baidu.com/*",
"background",
"tabs"
],
// 扩展。可调用第三方扩展
"plugins": [
{
"path": "extension_plugin.dll",
"public": true
}
],
// 指定所需要的特殊技术。目前只支持"3D"
"requirements": {},
// 自动升级
"update_url": "http://path/to/updateInfo.xml",
// 如果向目标页面插入图片或者js,需要在这里授权插件本地资源(以下仅为示例)
"web_accessible_resources": [
{
"resources": [ "/images/app.png" ],
"matches": ["<all_urls>"]
},
{
"resources": [ "insert.js" ],
"matches": ["<all_urls>"]
}
],
}
上面代码中,虽然可用的属性有这么多,但是常用的就以下这几个
-
name 扩展名称;
-
version 插件的版本;
-
manifest_version 配置文件版本;
-
description 对于插件功能的描述;
-
icons 插件的图标;
-
browser_action 定义插件的图标后,点击图标时弹出的页面,以及插件的标题,建议始终保留一个,不设置这个属性图标会是灰色的,设置了后才会亮起来;
-
background 背景页,扩展进程的背景运行环境,可以拦截修改请求等等;
-
content_scripts 内容脚本,可以指定在什么时机向什么页面插入什么脚本或者css资源;
-
permissions 权限申请项,比如存储权限storage,请求拦截权限webRequest, webRequestBlocking等等;