引子

最近一个月每天早上在学Javascript,刚学完基础语法和一点点jQuery,今天忍不住写个Chrome玩玩看看自己对JavaScript的掌握怎么样了。

目标

考虑了一下,打算做个小东西,但是总不能因为要做而做,没有意义。想到了做一个whatweb的探测插件。因为它们的官网上直接有查询功能,所以只需要一个post请求就行了。

思路

F12看一下包就知道只需要发一个post请求,里面包含一个target参数指向你需要查询的地址。然后会返回整个页面,所以解析一下取出第一个pre标签即可。

难点记录

最开始完全不知道插件怎么写,参考的是360的某某浏览器(他们的文档完全是chrome的翻译!我从未见过有如此厚颜无耻之人!),但是写了半天才发现这套文档已经过时了很久。最后没办法,看了下大致思路,然后对着英文的api文档写出了代码。其实只要明白了几个关键点,剩下的就是如何调用浏览器api而已。

效果图片

关键代码

$(document).ready(function(){
chrome.tabs.query({active:true,currentWindow:true},function(xxx){
var current_url = xxx[0].url;
data = {'target': current_url};
$.post("http://whatweb.net",data,function(result){
$('#show').html($(result).find('pre')[0].innerHTML.replace(/],/g,'],<br/>'));
});
});
});

就是这么简单的代码……

存在问题

依靠别人的服务器,而且人家做了限制,所以一个站点几分钟内不能再查。所以下个版本打算加上设置页面,可以设置自己的服务器页面,服务器只需要调用下whatweb返回结果就行,很好写。

下载地址

链接:http://pan.baidu.com/s/1pJ1f8Qf 密码:3vxe

第二版

下载地址

链接:http://pan.baidu.com/s/1dDEX9dR 密码:dka0

更新

  1. 可自定义服务器地址,注意服务器这里需要接受一个POST请求,参数是target,内容是目标url,返回应该是一个html格式文本,其中用pre标签修饰结果。
  2. 增加一小时提醒一次时间的功能,提醒会由Chrome通知发出。

最新文章

  1. NET Core-学习笔记(二)
  2. EXT5 时间框控制(开始时间不能大于结束时间)
  3. nginx android app 慢网络请求超时
  4. Python set集合类型操作总结
  5. Android View各种尺寸位置相关的方法探究
  6. Kosaraju 算法
  7. 【测试】trunc和round的区别
  8. Linux查看和改变网卡的一些信息
  9. 三星原厂就K9K8G08U0D升级为K9K8G08U0E的回信
  10. Getopt::Long 模块的简单使用
  11. locate 不能使用
  12. Cycling Label
  13. form表单重复提交,type=“button”和type=“submit”区别
  14. struts1.x中web.xml文件的配置
  15. Java集合ArrayList源码解读
  16. VS2015如何新建C++或者C语言版的lib文件
  17. Eclipse中Spring插件的安装
  18. struts2+springmvc+hibernate开发。个人纪录
  19. Ionic2 播放mp3功能实现
  20. C# lock 关键字的一些理解

热门文章

  1. nginx按日分割日志
  2. iOS开发UIResponder简介API
  3. Phpthink入门基础大全(CURD部分)
  4. spring boot junit test
  5. Spring源码分析(一):从哪里开始看spring源码(系列文章基于Spring5.0)
  6. mysql DOS中中文乱码 ERROR 1366 (HY000): Incorrect string value: &#39;\xC4\xEA\xBC\xB6&#39; for column &#39;xxx&#39; at row 1
  7. [转]Visual Studio 各版本下载
  8. python、Jupyter运行时间
  9. mysql-connetor-c 自动创建数据库、数据库表的命令
  10. expect安装