chrome插件知识点总结
来源:互联网 发布:win10网络不稳定 编辑:程序博客网 时间:2024/06/03 20:11
这两天做了一个chrome插件,主要作用就是,通过按钮向当前页面注入一个cookie,主要用于判别是否开启测试环境,另一个功能是检测页面是否有CNZZ链接,如果有,通过处理,实现点击弹框链接跳转到相应数据报表页。(项目地址:https://github.com/dannisi/switch_cookie_chrome_extension)
下面总结一下,方便日后的回顾。
1.配置
{ "name": "switch development environment", "version": "1.0", "manifest_version": 2, "description": "通过切换按钮,启用关闭测试环境", "content_scripts":[{ "matches":["http://*/*", "https://*/*"], "js":["contentScript.js"] }], "icons":{ "64":"icon.png" }, "background":{ "scripts":["background.js"] }, "permissions": [ "tabs", "cookies", "http://*/*", "https://*/*", "background" ], "browser_action": { "default_icon": "icon.png", "default_title": "测试吧", "default_popup": "popup.html" }}
这里需要注意:
1. “manifest_version”,必须是2。
2. “content_scripts”,配置向当前页面注入js和css,控制页面样式或结构,如果只是控制唯一的页面,只需要更改“matches”为想要控制页面的链接即可。这里只有注入js文件,如果还需要css,和js的写法一样。
3. “icons”,设置在chrome加载打包后显示的图标
4. “background”,这个相当于起了一个桥的作用,项目中需要它来传递信息,因为contentScript.js和popup.js不能通信。
5. “permissions”,配置权限
6. “browser_action”,弹出框的配置
2.增删cookie功能
1. chrome.tabs.getSelected(null, function(tab){ tab.url });
通过它获得当前页面的url.
2.function setTestCookie(url,name,value){ var time = new Date(); var expires = time.setTime(time.getTime()/1000+7*24*3600);//缓存7天 var domain=url.split('/')[2]; var cookie={ 'url':url, 'name':name, 'value':value, 'path':'/', "domain":domain, 'expirationDate':expires } chrome.cookies.set(cookie);};
设置cookie
3.function removeTestCookie(url,name){ var cookie={ 'url':url, 'name':name, } chrome.cookies.remove(cookie);};
删除指定name的cookie
4.var cookieDetail={ 'url':url, 'name':'x-server-env', }; chrome.cookies.get(cookieDetail,function(cookie){ //获得指定name的cookie的全部信息 });
这里通过判断参数cookie,来实现按钮的相关状态
5.另外需要注意的是,元素的处理,除了有些页面加载完后自动实现的之外,其余都需要通过addEventListener事件触发。类似如下:
$('checkBox').addEventListener('click',function(e){ checkBoxStatus(e); })
3.查看CNZZ数据报表功能
首先需要查看当前页面是否有cnzz链接,所以需要注入脚本来获取
"content_scripts":[{ "matches":["http://*/*", "https://*/*"], "js":["contentScript.js"] }],
通过contentScript.js获得需要的页面里的一些信息,此时需要考虑如何将信息传递给popup.js,这个时候,background.js派上了用场。
- contentScript.js中用到chromeAPI
chrome.extension.sendMessage({id:id})
-发送信息给background.js - background.js中通过
chrome.extension.onMessage.addListener( function(request, sender, sendResponse) { id=[]; id.push(request.id); });
事件监听,获得contentScript.js发送过来的消息。
- popup.js文件中
chrome.extension.getBackgroundPage()
获得信息
因为在background.js中,事件是立即发生的,需要在这个js中声明一个函数或者变量,然后popup.js中指定这个变量名或者函数名取得信息。如下:
background.jsvar id=[];chrome.extension.onMessage.addListener( function(request, sender, sendResponse) { id=[]; id.push(request.id); });var a=function(){ if(id){ return id; }else{ return 'false'; }}
popup.jschrome.extension.getBackgroundPage().a();
具体有许多深入的知识点尚未用到,暂不多做介绍…
参考文档:
开发者文档:http://open.se.360.cn/open/extension_dev/devguide.html
chrome extensions 中的交互: http://www.tuicool.com/articles/YfANNr
- chrome插件知识点总结
- Chrome插件技术开发总结
- google chrome 插件ping vpn使用总结
- 离线安装chrome插件Postman总结
- Chrome插件
- chrome插件
- chrome插件
- chrome 插件
- Chrome插件
- Chrome插件
- chrome插件
- CHROME插件
- chrome插件
- chrome 插件
- chrome插件
- chrome插件
- chrome插件
- Chrome插件
- Codeforce 632E(背包变形)
- 日常训练20161012 方块游戏
- Ubuntu下Django的部署
- 欢迎使用CSDN-markdown编辑器
- C++ enum的用法
- chrome插件知识点总结
- SpannableString与SpannableStringBuilder
- 双击返回键退出应用
- Linux 使用 tensorflow 框架搭建与实验
- 快来看pdf转换成word文档格式的方法吧
- AchartEngine图表库之动态折线图(多条)
- 中国城市经纬度表
- 关于ListView的setEmptyView()设置空白页方法
- Android 适配问题汇总