帮朋友开发的插件,云悉指纹:http://www.yunsee.cn/
第一个版本交托当天下午就完成了,只用到了脚本注入(content_scripts),window.location.*
拼接出url,ajax获取数据,在body体插入节点显示数据。但这个版本只对http有效,因为接口是http的,当https的网页请求http时地址栏右侧会出现小盾牌,提示此网页包含的脚本来自于身份未经验证的源。
第二天去练车,开发就放起来了,心里总觉得有点事,直到昨天被催了~
因为https的原因,放弃脚步注入,使用popup和background
在background
调用谷歌浏览器接口chrome.tabs.getSelected(null, function(tab) {});
获取当前tab的url,使用正则/http.?:\/\/.*?\//
匹配出协议+域名。
popup.js 调用 background.js 函数
background.js
function get_data(){ return '11111' }
popup.js
// 先获取background页面 var bg = chrome.extension.getBackgroundPage(); //再在返回的对象上调用background.js 里面的函数 bg.get_data();
需要注意的是,获取tab信息的接口和ajax都是异步的,未执行就直接返回了,所以要利用接口的回调函数,获取到tab信息再来发送ajax,并且设置async: false
使ajax同步,最后再使用浏览器的消息传递api把数据传给popup。
popup和background之间的通信
监听消息
chrome.extension.onMessage.addListener( function(request, sender, sendResponse) { console.log('我收到了' + request.data); sendResponse("返回值"); } );
发送消息
chrome.extension.sendMessage({data: return_data}, function(response) { console.log(response); });
演示:
135791,1/97/
135791′ and sleep(0)#
135791
135791
135791
135791
135791
135791
135791
135791
135791
135791
135791