博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

js 生成二维码 支持长按识别

github地址 获取
https://github.com/August-the-feel/jqcode.git

html 内容

<div  id="code">
        <div id="qrDiv" style="display: none;"></div>
        <div id="qrcode"></div>
    </div>

js 实现方式

	$(function(){
    	var Url = url +getQueryVariable('user_id');
        $("#qrDiv").qrcode({ 
                width: 128,
                height: 128,
                colorDark : "#000000",
                colorLight : "#ffffff",
                text: utf16to8(Url),
                render: "canvas",  //渲染方式有table方式(IE兼容)和canvas方式
                typeNumber:-1,//计算模式
        });
        var mycanvas1=document.getElementsByTagName('canvas')[0];
        //将转换后的img标签插入到html中
        var img=convertCanvasToImage(mycanvas1);
        $('#qrcode').append(img);//imagQrDiv表示你要插入的容器id
	})
    
    
        //从 canvas 提取图片 image
    function convertCanvasToImage(canvas) {
        //新Image对象,可以理解为DOM
        var image = new Image();
        // canvas.toDataURL 返回的是一串Base64编码的URL,当然,浏览器自己肯定支持
        // 指定格式 PNG
        image.src = canvas.toDataURL("image/png");
        return image;
    }

    //获取请求参数值
    function getQueryString(name) {
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
        var r = window.location.search.substr(1).match(reg);
        if (r != null) {
            return unescape(r[2]);
        }
        return null;
    }

    //中文编码格式转换
    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;
    }
    
    
	
	function getQueryVariable(variable)
        {
           var query = window.location.search.substring(1);
           var vars = query.split("&");
           for (var i=0;i<vars.length;i++) {
                   var pair = vars[i].split("=");
                   if(pair[0] == variable){return pair[1];}
           }
        }
posted @   八月情  阅读(227)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示