• Chrome浏览器二维码生成插件


    psb (1)psb

    猛击就可以使用啦-》》》猛击使用

    源码如下:

    源码打包

    源码:

    jquery-2.1.3.min.js

    jquery.qrcode.min.js

    https://github.com/jeromeetienne/jquery-qrcode

    spectrum.css

    spectrum.js

    https://github.com/bgrins/spectrum

    manifest.json

    {
        "manifest_version": 2,
        "name": "二维码生成"
          ,
        "version": "2.0"
          ,
    
        "description": "直接生成当前网页的二维码,方便穿越到手机!"
      ,
        "icons":
          {
            "16": "16.png"
            ,
            "48": "48.png"
        ,
            "128": "128.png"
          },
        "options_page": "options.html"
          ,
        "permissions":
          [
            "tabs"
          ],
        "browser_action":
          {
        "default_icon": "48.png"
            ,
        "default_popup": "popup.html"
          }
    
    }

    options.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>选项</title>
    <script src="jquery-2.1.3.min.js"></script>
    
    <script src='spectrum.js'></script>
    <link rel='styleSheet' href="spectrum.css" />
    
    </head>
    
    <body>
    <div style="text-align:center;font-size:18px">
    <p><img src="set.png"> <span style="font-size:32px">&nbsp;设置</span></p>
    <p></p>
    <p>设置您的二维码尺寸</p>
    <p>
      <label for="qrsize"></label>
      <select name="qrsize" id="qrsize">
        <option value="48">48*48</option>
        <option value="96">96*96</option>
        <option value="120"  selected="selected">120*120</option>
        <option value="144">144*144</option>
        <option value="180">180*180</option>
      </select>
    </p>
    <p>
      <input name="qrshow" type="checkbox" id="qrshow" value="1" checked="CHECKED" />
    显示二维码下方的“自定义生成”功能</p>
    <p></p>
    <p></p>
    <p>颜色:</p>
    <p>前景色:<input type="text" id="fore"/> &nbsp; 背景色:<input type="text" id="back"/> </p>
    <p>前景色应该比背景色更深。</p>
    <p></p>
    <p><span style="color:red">本页设置将自动保存</span></p>
      
      
    </p>
    </div>
    </body>
    
    <script src="options.js"></script>
    
    </html>

    options.js

    $(function(){
        
    var qrfore= localStorage["qrfore"];
    var qrback= localStorage["qrback"];
    $("#fore").spectrum({
        color: (qrfore?qrfore:"#000"),
        change: function(color) {
            save_options();
        }
        
    });
    
    $("#back").spectrum({
        color: (qrback?qrback:"#FFF"),
        change: function(color) {
            save_options();
        }
        
    });
    
    $("#qrsize").change(function(){
        save_options();
        
        
    });
    
    $("#qrshow").click(function(){
        save_options();
    });
    
    
    
    
            
        
    });
    
    
    function save_options() {
        var select = document.getElementById("qrsize");
        var qr_size = select.children[select.selectedIndex].value;
        localStorage["qr_size"] = qr_size;
        var qrshow = document.getElementById("qrshow");
        if(qrshow.checked==true){
        localStorage["qrshow"] = "t";
        }
        else
        {
            localStorage["qrshow"] = "f";
        }
        
        var qrfore=$("#fore").spectrum("get").toHexString();
        var qrback=$("#back").spectrum("get").toHexString();
        
        localStorage["qrfore"] = qrfore;
        localStorage["qrback"] = qrback;
        
    }
    
    function restore_options() {
        
    
        var qrshow = document.getElementById("qrshow");
        if( localStorage["qrshow"]=="f")
        {
            qrshow.checked=false;
        }
        else
        {
             qrshow.checked=true;
        }
        
        var qr_size = localStorage["qr_size"];
         if (!qr_size) {
        return;
      }
      var select = document.getElementById("qrsize");
      for (var i = 0; i < select.children.length; i++) {
        var child = select.children[i];
        if (child.value == qr_size) {
          child.selected = "true";
          break;
        }
      }
    }
    
    document.addEventListener('DOMContentLoaded', restore_options);

    popup.html

    <html>
    <head>
    <script src="jquery-2.1.3.min.js"></script>
    <script src="jquery.qrcode.min.js"></script>
    <script src="popup.js"></script>
    
    </head>
    <body>
    <p><div id="qrcode"></div> </p>
    <p></p>
    
    <p><input type="text" id="getval" size="10"></p>
    <p></p>
    <button id="send">生成</button> <a href="options.html" target="_blank" style="font-size:18px">设置</a>
    
    </body>
    
    </html>

    popup.js

    $(function(){
        //$(document).ready(function(){})可以简写成$(function(){});
        
        if( localStorage["qrshow"]=="f") {
            $("#getval").hide();
            $("#send").hide();
        }
        
         
          
          $("#send").click(function() {
              $("#qrcode").empty() ;
              qr($("#getval").val()); 
              
              
              
          }) ;
            
            
    });
    
    chrome.tabs.getSelected(null,function(tab){
       qr(tab.url);
    
    });
        
    
    function qr(text) {
        
        var text=utf16to8(text);
        var qrsize = localStorage["qr_size"];
            var qrfore= localStorage["qrfore"];
            var qrback= localStorage["qrback"];
            var size;
    
            if(!qrsize) {
             
                size = 120;
            }
            else {
                size=parseInt(qrsize);
            }
            $("#qrcode").qrcode({ 
                width : size, 
                height:size, 
                text: text,
                foreground: (qrfore?qrfore:"#000"),
                background:    (qrback?qrback:"#FFF"),
            
            }); 
            $("#getval").css("width",size);
    }
    
        
    
            
    
    function utf16to8(str) {  
        var out, i, len, c;  
        out = "";  
        len = str.length;  
        for(i = 0; i < len; i++) {  
        c = str.charCodeAt(i);  
        if ((c >= 0x0001) && (c <= 0x007F)) {  
            out += str.charAt(i);  
        } else if (c > 0x07FF) {  
            out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));  
            out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));  
            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  
        } else {  
            out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));  
            out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  
        }  
        }  
        return out;  
    }
  • 相关阅读:
    solidity 学习笔记(5)接口
    solidity 学习笔记(4)library库
    以太坊开发教程(二) 利用truffle发布宠物商店 DAPP 到 以太坊测试环境Ropsten
    以太坊开发教程(一) truffle框架简介/安装/使用
    软分叉/硬分叉/重放攻击/重放保护
    linux安装node.js
    jq获取元素偏移量offset()
    js:把字符串转为变量使用; js下将字符串当函数去执行的方法
    JS中json数组多字段排序方法(解决兼容性问题)(转)
    javascript之取余数、去商、天花板取整、地板取整
  • 原文地址:https://www.cnblogs.com/xcr1234/p/4550240.html
Copyright © 2020-2023  润新知