chrome插件笔记
项目中接触到chrome插件,在这里留做一个笔记,防忘记
1.mainifest.json
配置文件,插件的入口,列出用过的参数如下所示:
| 属性 | 解释 |
|---|---|
| name | 扩展程序的名称(必选) |
| version | 版本号(必选) |
| icons | Extension程序的图标,可以有一个或多个. 至少提供两个大小的图标— 48x48 and 128x128. |
| browser_action | 显示在浏览器上面的图标的对象和事件等,是一个json型,包括`default_title`:鼠标hover显示title,`default_icon`:显示的图片,`default_popup`:鼠标点击弹出的页面,应该是一个html文件。 |
| options_page | 每个插件允许有的一个选项页面,指向一个html文件 |
| content_scripts | 加载在当前页面的脚本,是一个对象,主要使用属性包括`js`:加载的js文件,是一个数组,`matches`:允许这些脚本运行的网址,数组 |
实例:
{
"name": "calendar",
"version": "0.0.9",
"manifest_version": 2,
"description": "简易日历,拍时间专用",
"icons": {
"48": "calendar.png"
},
"browser_action": {
"default_title": "时间都去哪儿了",
"default_icon": "calendar.png",
"default_popup": "calendar.html"
},
"options_page": "options.html",
"content_scripts": [{
"js": ["jquery.js","background.js"],
"matches": [ "*://*/*"]
}]
}
几个注意事项:
- 任何加载script标签或者不安全的行为都会被浏览器屏蔽,如seajs加载文件,handlebarsjs以及evel等
- 插件所在的脚本和网页所在的脚本属于两个沙箱,不能相互操作
- content_scripts插件可以任意修改页面的dom,jquery大部分方法都是可以用的
- jquery的ajax和jsonp都不能有效的工作,如果要实现ajax方法,可以使用原声的xhr方法进行。
2014.07.16 施桢屹