缘由

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,

需求:

  1. 点击地址栏右侧图标弹出小窗口自动生成当前页面URL的二维码
  2. 弹出窗口包含一个输入框,可手动根据输入框的内容生成二维码

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插件的更多相关文章

  1. 自己在项目中写的一个Jquery插件和Jquery tab 功能

    后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...

  2. 菜鸟写的第一个chrome插件

    一.新建一个文件夹,用来放插件的代码 二.首先新建配置文件manifest.json // 开发参考:http://open.chrome.360.cn/extension_dev/overview. ...

  3. js写一个chrome 插件

    访问网站的时候,最烦的就是一些弹窗和广告.于是,就想着能不能在访问特定网站的时候,执行一段js脚本,去除页面的广告.于是乎,好像 chrome 插件可以实现. 这里,以 百度 的网站为例 新建 sim ...

  4. 如何通过写一个chrome扩展启动本地程序

    @(编程) [toc] 本文介绍如何利用Chrome 的插件, 从我们的一个网站中启动一个我们的本地程序.本文的环境是windows10,本文的例子是通过点击网页上的一个button,调用本地的wor ...

  5. 搞了我一下午竟然是web.config少写了一个点

    Safari手机版居然有个这么愚蠢的bug,浪费了我整个下午,使尽浑身解数,国内国外网站搜索解决方案,每一行代码读了又想想了又读如此不知道多少遍,想破脑袋也想不通到底哪里出了问题,结果竟然是web.c ...

  6. CI(codeigniter)框架,routes.php设置正确,但是显示服务器错误,是__construct少写了一个下划线

    今天弄了一下CI框架,大概看了一下文档,感觉CI框架非常精简,但是在做的时候遇到了问题,CI文档中提供了一个新闻系统的例子,所有工作都做完了,在浏览器中打开相对应的url是,却显示“服务器错误”,一点 ...

  7. 请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件。

    请写出一个超链接,点击链接后可以向zhangsan@d-heaven.com发送电子邮件. <a href=”mailto: zhangsan@d-heaven.com”>发邮件</ ...

  8. this.$Message.success('提示信息') 少写了一个c 导致报错

    this.$Message.success('提示信息') 少写了一个c 导致报错 而且 $Message 输出还没显示,导致我以为是没有 $Message 对象了,其实全局对象直接调用即可

  9. 写了一个简单的CGI Server

    之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...

随机推荐

  1. usb资料2

    ubuntu linux下如何在启动时就关闭usb接口? https://zhidao.baidu.com/question/548651197.html Linux USB 驱动开发(四)—— 热插 ...

  2. shader之texture

    纹理坐标作为属性传递到顶点着色器 texture是OPENGL对象,包含一张或多张相同格式的图片. 它有2中用途: the source of a texture access from a Shad ...

  3. js中match的用法

    match() 方法将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本.这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g. 一.如果 regexp 没 ...

  4. javascript 函数属性prototype(转)

    在JavaScript中并没有类的概念,但javascript中的确可以实现重载,多态,继承.这些实现其实方法都可以用JavaScript中的引用和变量作用域结合prototype来解释. 1.pro ...

  5. MongoDB官方C#驱动的AsQueryable踩到坑了

    collection.AsQueryable().Where()有4个重载,分别是: public static IQueryable<TSource> Where<TSource& ...

  6. C 语言实例 - 输出九九乘法口诀表

    C 语言实例 - 输出九九乘法口诀表 使用嵌套 for 循环输出九九乘法口诀表. 实例 #include<stdio.h> int main(){ //外层循环变量,控制行 ; //内层循 ...

  7. transition动画最简使用方式

    HTML <a href="#" title="">test</a> CSS a {display:block; width:200px ...

  8. React中的代码分割

    代码分割想要解决的问题是:经打包工具

  9. C# 线程同步计数存在的问题

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  10. svn属性忽略

    svn属性 svn:ignore logslibs .settings.settings/*targettarget/*.classpath.project