chrome插件笔记 - make it easy      

Zhenyi's blog

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 施桢屹