Browser Extension v2 配置文件
Chrome 插件配置文件
Tip
manifest.json
所有 Chrome Extensions 都需要有一个 manifest.json
文件,该文件包含了插件的元信息 metadata,进行相关配置设置、所需权限、使用的资源等。
json
{
// 以下三项是必须有的元信息
"manifest_version": 2, // 清单文件的版本,必须是 2,当前 Chrome 插件的版本
"name": "demo", // 插件的名称
"version": "1.0.0", // 插件的版本
"description": "Hello World", // 插件描述
"icons": // 插件的图标,显示在 Chrome 插件列表页面
{
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
"background": // 后台运行的程序,2 种指定方式,只能指定一个后台
{
"scripts": ["js/background.js"] // 如果指定 JS,那么会自动生成一个背景页
// 可以在 Chrome 插件列表页面点击 查看视图背景页 打开该页面的控制台进行调试
// "page": "background.html"
},
"browser_action": // 浏览器右上角图标设置,browser_action、page_action、app 必须三选一
{
"default_icon": "img/icon.png",
"default_title": "Hello World", // 鼠标悬停在图标时显示的标题
"default_popup": "popup.html"
},
// 当某些特定页面打开才显示的图标
/*"page_action":
{
"default_icon": "img/icon.png",
"default_title": "我是 pageAction",
"default_popup": "popup.html"
},*/
"content_scripts": // 需要直接「注入」页面的 JS,在页面加载完成后运行,可以操作页面的 DOM,可以指定多个规则
[
{
"matches": ["<all_urls>"], // 设置匹配的 URL 才运行 content scripts,<all_urls> 表示匹配所有地址
//"matches": ["http://*/*", "https://*/*"],
"js": ["js/jquery.js", "js/content-script.js"], // 多个 JS 按顺序注入
"css": ["css/custom.css"], // 可以注入 CSS,但可能影响全局样式
"run_at": "document_start" // 代码注入的时间
// 可选值 document_start、document_end、document_idle,最后一个表示页面空闲时,默认 document_idle
},
// content-script 可以可以配置多个规则
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
"permissions": // 权限申请
[
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过 executeScript 或者 insertCSS 访问的网站
"https://*/*" // 可以通过 executeScript 或者 insertCSS 访问的网站
],
"web_accessible_resources": ["js/inject.js"], // 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"homepage_url": "https://www.google.com", // 插件主页
"chrome_url_overrides": // 覆盖浏览器默认页面
{
"newtab": "newtab.html" // 覆盖浏览器默认的新标签页
},
"omnibox": { "keyword" : "go" }, // 向地址栏注册一个关键字以触发插件
// 默认语言
"default_locale": "zh_CN",
"devtools_page": "devtools.html" // devtools 页面入口,只能指向一个 HTML 文件(不能是JS文件)
}