1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
| { //必选 /* 指定您的应用包要求的清单文件格式的版本。从 Chrome 18 开始,开发人员应该指定 2 */ "manifest_version": 2, "name":"我的应用名称", "version":"我的应用版本",
//推荐 /* 清单文件-默认语言 指定_locales中的子目录,包含该应用默认字符串。 对于含有 _locales 目录的应用来说这一属性是必需的, 在没有 _locales 目录的应用中该属性不能存在 */ "default_locale":"en",
/* 这个描述在安装应用之后可以看见 */ "description":"关于应用的描述",
/*一个或多个代表应用、应用或主题背景的图标*/ "icons":{ "16":"icon16.png", "48":"icon48.png" },
/* 选择某一个(或者无) browser_action(浏览器按钮) page_action(页面按钮) */
// 如果有 browser_action, 即在 chrome toolbar 的右边添加了一个 icon "browser_action": { "default_icon": "logo.jpg", "default_title": "Google Mail", // tooltip, 光标停留在 icon 上时显示 "default_popup": "popup.html" // 如果有 popup 的页面, 则用户点击图标就会渲染此 HTML 页面 },
// 如果并不是对每个网站页面都需要使用插件, 可以使用 page_action(页面按钮) 而不是 browser_action(浏览器按钮) // browser_action 应用更加广泛 // 如果 page_action 并不应用在当前页面, 会显示灰色
"page_action":{ "default_icon": { // 可选 "19": "images/icon19.png", // 可选 "38": "images/icon38.png" // 可选 }, "default_title": "Google Mail", // 可选,在工具提示中显示 "default_popup": "popup.html" // 可选 },
//可选 "author":"开发者", "automation":"",
/* 后台网页 1.应用通常需要有一个长时间运行的脚本来管理一些任务或状态,而后台网页就是为这一目的而设立。 通常情况下,后台页面不需要任何 HTML 标记,这种情况下后台页面可以单独使用 JavaScript文件实现。 后台页面将由应用系统生成,包含 scripts 属性中列出的每一个文件。
2.page:如果您需要在您的后台页面中指定 HTML,您可以改用 page 属性:
3.persistent:应用和应用通常需要长时间运行的脚本来管理某些任务或状态,这就是事件页面的作用。 事件页面只在需要时加载,当事件页面不活动时就会卸载,以便释放内存和其他系统资源。 如何得到事件页面 就是设置一个"persistent"键,如果没有设置,你将得到一个普通的后台页面。 */ "background":{ "scripts":["background.js"], "page": "background.html", "persistent":false },
/* 内容脚本:其实就是向你想要的网页中插入一个脚本代码,执行你想要做的事情 内容脚本是在网页的上下文中运行的 JavaScript 文件, 它们可以通过标准的文档对象模型(DOM)来获取浏览器访问的网页详情,或者作出更改。 1.run_at 可选。 控制 js 中的 JavaScript 文件何时插入, 可以为 "document_start"、 "document_end" 或 "document_idle",默认为 "document_idle"。
1.1如果是 "document_start",这些文件将在 css 中指定的文件之后,但是在所有其他 DOM 构造或脚本运行之前插入。
1.2.如果是 "document_end",文件将在 DOM 完成之后立即插入,但是在加载子资源(如图像与框架)之前插入。
1.3.如果是 "document_idle",浏览器将在 "document_end" 和刚发生 window.onload 事件这两个时刻之间选择合适的时候插入, 具体的插入时间取决于文档的复杂程度以及加载文档所花的时间,并且浏览器会尽可能地为加快页面加载速度而优化。 2.all_frames 可选。 控制内容脚本运行在匹配页面的所有框架中还是仅在顶层框架中。 默认为 false,意味着仅在顶层框架中运行 content_scripts还有一些其他不是很常用的属性 */
"content_scripts": [{ "matches": ["https://*.lovek.vip/*"], //匹配的地址网页 "exclude_matches":[], "js": ["jquery.js","ideacome.js"], //插入的js "css": ["mystyles.css"], //css改变样式 "run_at":"document_idle", "all_frames": true //该匹配下面的所有窗口 },{ "matches": ["*://*/*.png", "*://*/*.jpg", "*://*/*.gif", "*://*/*.bmp"], "js": ["js/show-image-content-size.js"] //可以针对不同的规则插入不同的内容 }],
// 普通页面能够直接访问的插件资源列表,如果不设置是无法直接访问的 "web_accessible_resources": [ "images/*.png", "style/double-rainbow.css", "script/double-rainbow.js", "script/main.js", "templates/*" ],
/** 如果不是通过 chrome web store 自动更新插件
我们希望扩展能自动升级,理由和让chrome自动升级一样:修改程序bug和安全漏洞 ,增加新功能,提升性能,改善体验。 一个扩展的manifest文件里面必须指定一个"update_url"来执行升级检测。
扩展可以托管在Chrome Web Store,也可以发布到极速浏览器应用开放平台上。 如果托管在Chrome Web Store则update_url应该是:http://clients2.google.com/service/update2/crx **/ "update_url": "https://clients2.google.com/service/update2/crx",
// 插件主页,这个很重要,不要浪费了这个免费广告位 "homepage_url": "https://www.lovek.vip",
/* 扩展或app将使用的一组权限。每个权限是一列已知字符串列表中的一个, 如geolocatioin或者一个匹配模式,来指定可以访问的一个或者多个主机。 权限可以帮助限定危险,如果你的扩展或者app被攻击。 一些权限在安装之前,会告知用户 */ "permissions":[ "tabs", //Required if the extension uses the chrome.tabs or chrome.windows module. "bookmarks", //使用chrome.bookmarks模块来创建、组织和管理书签 "http://www.lovek.vip/", "http://*.google.com/", "unlimitedStorage", //提供了一个无限的HTML5配额来存储客户端数据,如数据库和本地存储文件。没有这个权限,扩展仅限于5 MB的本地存储 "history" //历史记录的使用权限 chrome.history "notifications",//提示 "cookies",//Required if the extension uses the chrome.cookies module. ],
/**开发时为扩展指定的唯一标识值。 注意:通常您并不需要直接使用这个值,而是在您的代码中使用相对路径或者chrome.extension.getURL()得到的绝对路径。 这个值并不是开发时显式指定的,而是Chrome在安装.crx时辅助生成的。(开发时可以通过上传扩展或者手工打包生成crx文件)。 安装完crx,在Chrome的用户数据目录下的Default/Extensions/<extensionId>/<versionString>/manifest.json文件中,您可以看到这个扩展的key。**/
key:'',
"commands": { // commands API 用来添加快捷键 // 需要在 background page 上添加监听器绑定 handler "toggle-feature-foo": { "suggested_key": { "default": "Ctrl+Shift+Y", "mac": "Command+Shift+Y" }, "description": "Toggle feature foo", "global": true // 当 chrome 没有 focus 时也可以生效的快捷键 // 仅限 Ctrl+Shift+[0..9] }, "_execute_browser_action": { "suggested_key": { "windows": "Ctrl+Shift+Y", "mac": "Command+Shift+Y", "chromeos": "Ctrl+Shift+U", "linux": "Ctrl+Shift+J" } }, "_execute_page_action": { "suggested_key": { "default": "Ctrl+Shift+E", "windows": "Alt+Shift+P", "mac": "Alt+Shift+P" } }, ... }, "content_capabilities": ..., "optional_permissions": ["tabs"], // 其他需要的 permission, 在使用 chrome.permissions API 时用到, 并非安装插件时需要
"short_name": "Short Name", // 插件名字简写
"storage": { "managed_schema": "schema.json" }, // 使用 storage.managed api 的话, 需要一个 schema 文件指定存储字段类型等, 类似定义数据库表的 column
...... //还有很多其他的配置 }
|