引子

最近一个月每天早上在学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通知发出。

试做Chrome插件——whatweb的chrome插件(从老博客转)的更多相关文章

  1. Trac常用插件描述! - wang_xf的Study home - 博客频道 - CSDN.NET

    Trac常用插件描述! - wang_xf的Study home - 博客频道 - CSDN.NET

  2. 如何通过Gitalk评论插件,5分钟为你的博客快速集成评论功能

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...

  3. 为什么你应该试试用Sublog写博客

    HI 这篇文章发布后,收到了一些反馈,在不同的阅读媒体上(浏览器,RSS,evernote)等,会有样式兼容问题,特别是之前的代码显示行号的实现方式,使用浮动code块,兼容问题比较严重,所以做了一个 ...

  4. 关于Chrome浏览器不能使用Java插件的问题

    最近测试的“上海电信宽带测速系统”中HTTP测试需要用到java插件,之前装过好多次插件,装好后还是提示java插件未安装,郁闷了N久,最近问题终于得到了解决,故做分享~ 关于Chrome浏览器不能使 ...

  5. chrome http Request Header 修改插件

    chrome http Request Header 修改插件 2013-05-31 11:03:03|  分类: JavaScript |  标签:chrome  extensions  chang ...

  6. Chrome 百度搜索热点过滤插件 - 开源软件

    学习时,为了搜集最全的中文资料,有时候不得不使用Baidu搜索引擎.在你还是个小菜鸡的时候你可能会花费大量时间在百度上! 但是,时间久了你会发现,你总会被网络上一些奇奇怪怪或者有趣的事情吸引过去而逐渐 ...

  7. chrome浏览器好用的插件

    1.Chrome批量保存所有选项卡网址 + 批量打开复制网址小插件 批量保存所有选项卡网址插件:Copy All Urls 经常搜索一些东西,下班时无法处理完所有网页内容,比如做笔记什么的,又不舍得关 ...

  8. Chrome,本地页面和插件

    今天测试一款Chrome插件,这款插件提供了一些本地页面做测试用,在解决一些技术问题之后,在插件的官网上可以测试成功了,但是在本地页面上测试时Chrome始终会拦截插件,即使在右上角的地址栏中允许该本 ...

  9. 【转】NPAPI 插件无法在 Chrome 42 版及更高版本上正常运行

    原文网址:https://support.google.com/chrome/answer/6213033 NPAPI 插件无法在 Chrome 42 版及更高版本上正常运行 您可以利用插件在浏览器中 ...

随机推荐

  1. [Nowcoder] 保护

    题意:... 思路: \(LCA\)乱搞+启发式合并(堆) #include <bits/stdc++.h> using namespace std; const int maxn = 2 ...

  2. ionic:ionic 教程

    ylbtech-ionic:ionic 教程 1.返回顶部 1. ionic 教程 ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framew ...

  3. JSP/Servlet笔记

    一.Servlet简介 Servlet程序可以运行于任何服务器,如web.email.FTP等,所有servlet程序必须实现javax.servlet接口.GenericServlet是实现了jav ...

  4. java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

    :: - [localhost-startStop-] INFO - Root WebApplicationContext: initialization started -- :: - [local ...

  5. LightOJ-1282-Leading and Trailing-快速幂+数学

    You are given two integers: n and k, your task is to find the most significant three digits, and lea ...

  6. POJ-1836-Alignment-双向LIS(最长上升子序列)(LIS+LSD)+dp

    In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are al ...

  7. 20140312 Excel表格画折现图次坐标轴

    1.struct 是8字节对齐 2.char * a, sizeof(a)=4; char a[]="abcdefg";sizeof(a)=8; 3.内存对其齐

  8. NEO4J中文分词全文索引自动更新解决方案

    NEO4J中文分词全文索引自动更新解决方案 一.样例数据 二.英文与中文全文索引差别 1.创建NEO4J默认索引 2.删除索引 3.创建支持中文分词的索引 三.APOC自带英文全文索引过程(可自动更新 ...

  9. LinkedHashMap+Spring Aop实现简易的缓存系统

    之前介绍说要做在线文库的系统,当数据量大的时候,根据标签tag的对文档信息的查询将是一个很耗时的工作,原来分析LinkedHashMap源码的时候了解到它有一个双向链表的结构,可以通过将刚被访问的元素 ...

  10. Linux系统搭建Red5服务器

    Linux系统搭建Red5服务器 Red5 是 支持Windows,Linux等多平台的RTMP流媒体服务器,Windows下搭建相对容易,图形界面操作比较简单,Linux服务器的环境下没有图形界面, ...