为了少点击几次,自己写了一个Chrome插件
缘由
chrome应用商店有三款二维码插件,自己一直使用的第一款。这三款插件有且只有一个功能就是生成当前页面的URL的二维码。
其实这个功能基本上满足了需要移动端开发在微信里打开页面进行调试的情况。
但是也有少数情况(如:页面存在重定向),无法直接在桌面上打开链接。此时以往我习惯性的打开百度,输入二维码,找到草料二维码,填入链接,然后生成二维码,最后微信扫一扫。
每次有此情况发生的时候,脑子里都存在一个想法为什么生成当前页面的URL的插件上存在一个输入框,可以手动生成一个二维码呢?!

Chrome插件开发
由于之前接触过一些Chrome开发,所以对Chrome开发心里有数,本质上就是前端开发,加上Chrome提供的特殊API接口,就可以搞定。
最核心问题 - JS能够制作二维码
开源的插件:http://davidshimjs.github.io/qrcodejs/
Chrome插件类型 - browser_action
根据《Chrome扩展及应用开发》我总结了大概有五种类型:
- browser_action : 地址栏右侧图标
- page_action : 地址栏内右侧图标
- content_scripts : 对某些页面进行处理
- background : 后台运行脚本
- options_page:选项页面
二维码开发肯定选browser_action,
需求:
- 点击地址栏右侧图标弹出小窗口自动生成当前页面URL的二维码
- 弹出窗口包含一个输入框,可手动根据输入框的内容生成二维码
Chrome插件配置文件介绍
{
"manifest_version": 2,
"name": "二维码",
"version": "0.0.1",
"description": "二维码",
"icons": {
"128": "img/qrcode.png"
},
"browser_action": {
"default_icon": {
"38": "img/qrcode.png"
},
"default_tile": "二维码",
"default_popup": "popup.html"
},
"permissions": [
"tabs"
]
}
- "manifest_version" 当前必须为2。
- "icons"为扩展程序页面的图标。
- "browser_action"中"default_icon"为地址栏右侧的图标。
- "default_popup"为最核心的点击图标弹出的小窗口页面。
- "permissions"因为需要获取用户当前页面的URL需要配置的权限。
Chrome插件弹出页面
此页面为正常的前端开发HTML页面,可引入CSS,和JS文件。
成果

github: https://github.com/yangqiong/chrome-plugins-qrcode
代码写的不好,欢迎大家提意见,谢谢。
为了少点击几次,自己写了一个Chrome插件的更多相关文章
- 自己在项目中写的一个Jquery插件和Jquery tab 功能
后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...
- 菜鸟写的第一个chrome插件
一.新建一个文件夹,用来放插件的代码 二.首先新建配置文件manifest.json // 开发参考:http://open.chrome.360.cn/extension_dev/overview. ...
- js写一个chrome 插件
访问网站的时候,最烦的就是一些弹窗和广告.于是,就想着能不能在访问特定网站的时候,执行一段js脚本,去除页面的广告.于是乎,好像 chrome 插件可以实现. 这里,以 百度 的网站为例 新建 sim ...
- 如何通过写一个chrome扩展启动本地程序
@(编程) [toc] 本文介绍如何利用Chrome 的插件, 从我们的一个网站中启动一个我们的本地程序.本文的环境是windows10,本文的例子是通过点击网页上的一个button,调用本地的wor ...
- 搞了我一下午竟然是web.config少写了一个点
Safari手机版居然有个这么愚蠢的bug,浪费了我整个下午,使尽浑身解数,国内国外网站搜索解决方案,每一行代码读了又想想了又读如此不知道多少遍,想破脑袋也想不通到底哪里出了问题,结果竟然是web.c ...
- CI(codeigniter)框架,routes.php设置正确,但是显示服务器错误,是__construct少写了一个下划线
今天弄了一下CI框架,大概看了一下文档,感觉CI框架非常精简,但是在做的时候遇到了问题,CI文档中提供了一个新闻系统的例子,所有工作都做完了,在浏览器中打开相对应的url是,却显示“服务器错误”,一点 ...
- 请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件。
请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件. <a href=”mailto: zhangsan@d-heaven.com”>发邮件</ ...
- this.$Message.success('提示信息') 少写了一个c 导致报错
this.$Message.success('提示信息') 少写了一个c 导致报错 而且 $Message 输出还没显示,导致我以为是没有 $Message 对象了,其实全局对象直接调用即可
- 写了一个简单的CGI Server
之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...
随机推荐
- JSP+JavaBean+Servlet工作原理实例…
JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...
- CodeForces 484B Maximum Value (数学,其实我也不知道咋分类)
B. Maximum Value time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- 编译portmap和nfs-utils
编译portmap和nfs-utils 为了在播放机上实现NFS服务器的功能,我们已经在uClibc中打开了完整RPC支持,并且在新编译的内核中打开了NFS服务器支持.此外还有两个软件包也是提供NFS ...
- Working Experience - MoveWindow API 失败/无效
写在前面 当然过程不可能这么顺风顺水,毕竟对 Win32 API 不熟悉,并且国内搜索引擎和博客质量较低(不误导你就算好了),最后还是通过 Google -> StackOverflow 找到答 ...
- [51nod] 1289 大鱼吃小鱼 堆栈-模拟
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右).问足够长的时间之后 ...
- JQ下拉加载更多
<!DOCTYPE=html> <html> <head> <script src="jquery-1.4.2.min.js" type= ...
- 洛谷P2899 [USACO08JAN]手机网络Cell Phone Network
P2899 [USACO08JAN]手机网络Cell Phone Network 题目描述 Farmer John has decided to give each of his cows a cel ...
- Python序列化模块pickle和json使用和区别
这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...
- CC07:清除行列
题目 请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零. 给定一个N阶方阵int[][](C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C ...
- GYM 101572I(有向图上最小环)
逗号空格是假的,全都直接连边就行. 提供一个迪杰n次的图上最小环板子. #include <cstdio> #include <cstring> #include <io ...