以下为必选选项
```
{
"name": "TestExtention",
"manifest_version": 2,
"version":"1.0.0"
}
```
详情:
~~~
{
"author": "dash",
"name": "插件名",
"description": "插件描述",
"version": "2.1",
"manifest_version": 2,
"update_url": "https://baidu.com",
"icons": {
"128": "icon_16.png",
"128": "icon_32.png",
"128": "icon_48.png",
"128": "icon_128.png"
},
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"devtools_page": "theme/hackbar.html",
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "https://baidu.com",
"permissions": ["https://*.google.com/", "activeTab"],//权限
/*"permissions": [ "tabs", "activeTab", "webRequest", "webRequestBlocking", "\u003Call_urls>", "storage" ],*/
"browser_action": {
"default_icon": "icon_16.png",
"default_popup": "popup.html"
}
}
~~~
~~~
{
// Required
"manifest_version": 2,
"name": "My Extension",
"version": "versionString",
// 推荐 默认本地化语言
"default_locale": "en",
"description": "A plain text description",
// 用一个尺寸的也没问题 ,不同尺寸可以应对不同的缩放
"icons": {...},
// browser_action、page_action、app之间只能选择一个(或不选择)
//UI部分有图标(icon)、提示(tooltip)徽章(badge)、弹出框(popup)组成
"browser_action": {
"default_icon": "icons/icon.png",//图标(icon)
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件", //对应提示(tooltip)
"default_popup": "popup.html"//弹出框(popup)
//徽章(badge)只能通过api设置
},
"page_action": {
"default_icon": "icons/icon.png",
// 图标悬停时的标题,可选
"default_title": "这是一个示例Chrome插件",
"default_popup": "popup.html"
},
// 可选
"action": ...,
"author": ...,
"automation": ...,
"background": {
// 推荐
"persistent": false,
// 指定页面或者js,如果指定JS,那么会自动生成一个背景页
//"page": "background.html"
"scripts": ["background.js"]
// 可选
"service_worker":
},
"chrome_settings_overrides": {...},
"chrome_ui_overrides": {
"bookmarks_ui": {
"remove_bookmark_shortcut": true,
"remove_button": true
}
},
// 覆盖浏览器默认页面
"chrome_url_overrides": {
// 覆盖浏览器默认的新标签页
"newtab": "newtab.html"
},
"commands": {...},
"content_capabilities": ...,
//需要直接注入页面的JS
//这里写的的js和原始页面共享DOM但是不能共享js,如要访问页面JS(例如某个JS变量),只能通过`injected js`来实现。content-scripts不能访问绝大部分`chrome.xxx.api`,除了下面这4种:
//chrome.extension(getURL , inIncognitoContext , lastError , onRequest , sendRequest)
//chrome.i18n
//chrome.runtime(connect , getManifest , getURL , id , onConnect , onMessage , sendMessage)
//chrome.storage
//非要调用其它API的话,你还可以通过通信来实现让background来帮你调用
"content_scripts": [
{
// "" 表示匹配所有地址
"matches": ["","http://*/*", "https://*/*"],
// 多个JS按顺序注入
"js": ["js/jquery-1.8.3.js", "js/content-script.js"],
// JS的注入可以随便一点,但是CSS的注意就要千万小心了,因为一不小心就可能影响全局样式
"css": ["css/custom.css"],
// 代码注入的时间,可选值: "document_start", "document_end", or "document_idle",最后一个表示页面空闲时,默认document_idle
"run_at": "document_start"
},
{
"matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"],
"js": ["js/show-image-content-size.js"]
}
],
"content_security_policy": "policyString",
"converted_from_user_script": ...,
"current_locale": ...,
"declarative_net_request": ...,
//devtools页面入口,注意只能指向一个HTML文件,不能是JS文件
"devtools_page": "devtools.html",
"event_rules": [{...}],
"externally_connectable": {
"matches": ["*://*.example.com/*"]
},
"file_browser_handlers": [...],
"file_system_provider_capabilities": {
"configurable": true,
"multiple_mounts": true,
"source": "network"
},
// 插件主页,这个很重要,不要浪费了这个免费广告位
"homepage_url": "http://path/to/homepage",
"import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
"incognito": "spanning, split, or not_allowed",
"input_components": ...,
"key": "publicKey",
"minimum_chrome_version": "versionString",
"nacl_modules": [...],
"oauth2": ...,
"offline_enabled": true,
//向地址栏注册一个关键字以提供搜索建议,只能设置一个关键字
"omnibox": {
"keyword": "aString"
},
"optional_permissions": ["tabs"],
//Chrome40以前的插件配置页写法,顺便一提49版本是最后一个支持xp的版本
"options_page": "options.html",
//Chrome40以后的插件配置页写法,如果2个都写,新版Chrome只认后面这一个
"options_ui": {
"chrome_style": true,
// 添加一些默认的样式,推荐使用
"page": "options.html"
},
"permissions": [
"contextMenus", // 右键菜单
"tabs", // 标签
"notifications", // 通知
"webRequest", // web请求
"webRequestBlocking",
"storage", // 插件本地存储
"http://*/*", // 可以通过executeScript或者insertCSS访问的网站
"https://*/*" // 可以通过executeScript或者insertCSS访问的网站
],
"platforms": ...,
"replacement_web_app": ...,
"requirements": {...},
"sandbox": [...],
"short_name": "Short Name",
"signature": ...,
"spellcheck": ...,
"storage": {
"managed_schema": "schema.json"
},
"system_indicator": ...,
"tts_engine": {...},
"update_url": "http://path/to/updateInfo.xml",
"version_name": "aString",
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的
"web_accessible_resources": ["js/inject.js"]
}
~~~