为了少点击几次,自己写了一个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行左右,难度中等偏上,小伙伴可以仔细看看 ...
随机推荐
- python :字符串,列表,元组,集合,字典
字符串方法: 字符串是一个有序的,不可修改的,元素是以引号包围的序列.单引号,双引号,三引号,str生成 字符串的修饰 a='novo gene' a.center() 让字符串在指定的长度居中显 ...
- pysam操作sam文件
pysam模块 因为要分析sam文件中序列的情况,因此要对reads进行细分,所以之前想用数据库将sam文件信息存储,然后用sql语句进行分类.后来发现很麻烦,pysam就是一个高效读取存储在SAM ...
- linux下安装Drcom
环境:台式机物理机,centos7 因为要下载依赖包,物理机一开始没有网络,所以我先使用的是实验室的公用ip,然后完成以下操作(网上有大神说,可以现在其他机器上下载依赖包,copy过来也可以,但我没有 ...
- Git的使用 强制放弃本地所有修改,获取master中最新版本更新本地
git fetch --all git reset --hard origin/master git fetch --all 的意思是,下载远程库的所有内容,但不与本地做任何合并 git reset ...
- ACM-ICPC2018南京网络赛 AC Challenge(一维状压dp)
AC Challenge 30.04% 1000ms 128536K Dlsj is competing in a contest with n (0 < n \le 20)n(0<n ...
- day01-HTML(1)
一. 常用快捷键 Ctrl+c 复制 Ctrl+v 粘贴 Ctrl+x 剪切 Ctrl+a 全选 Ctrl+s 保存 Ctrl+z 撤销一步 Windows+d 返回桌面 Windows+e 我的电脑 ...
- Js获取当前的日期和时间以及时间戳转化为时间
/** *获取当前时间 *format=1精确到天 *format=2精确到分 */ function getCurrentDate(format) { var now = new Date(); v ...
- nginx限制恶意IP处理方法
思考了几种方案,最终考虑使用ip黑名单的方式: 处理方法: 一.nginx黑名单方式: 1.过滤日志访问API接口的IP,统计每10分钟调用超过100次的IP,直接丢进nginx的访问黑名单 2.具体 ...
- 洛谷P4318 完全平方数(容斥,莫比乌斯反演)
传送门 求第$k$个没有完全平方数因数的数 一开始是想筛一波莫比乌斯函数,然后发现时间复杂度要炸 于是老老实实看了题解 一个数的排名$k=x-\sum_{i=1}^{x}{(1-|\mu(i)|)}$ ...
- EOS Bios Boot Sequence
EOS version:v1.0.5 Date:2018-06-19 Host: Centos 7 Reference :https://github.com/EOSIO/eos/wiki/Tutor ...