一、什么是谷歌插件
一个应用(扩展)其实是压缩在一起的一组文件,包括HTML,CSS,Javascript脚本,图片文件,还有其它任何需要的文件。 应用(扩展)本质上来说就是web页面,它们可以使用所有的浏览器提供的API,从XMLHttpRequest到JSON到HTML5全都有。
应用(扩展)可以与Web页面交互,或者通过content script或cross-origin XMLHttpRequests与服务器交互。应用(扩展)还可以访问浏览器提供的内部功能,例如标签或书签等
二、框架原理
- 怎么和浏览器交互
先走manifest.json文件中申明权限
chrome.bookmarks
chrome.cookies
chrome.history…..
注意:只能在弹出页面的js和background中调用这些接口(除了chrome.extension),content script中只能调用chrome.extension
2.怎么向当前页面注入js
设置menifest.json的content_scripts属性
编程式注入
隔离环境:可以访问所注入页面的DOM,但是不能访问里面的任何javascript变量和函数
可以通过dom属性和当前页面的js共享数据
3.消息传递
扩展内(一个插件的各个部分)的消息传递
简单的一次请求,如果多个页面都发起了相同的请求,都在等待答复,只有第一个发起请求的页面会得到响应,其他的将会被忽略
长时间保持连接。从content script到background建立一个长时间