js 生成二维码并点击下载软件_js生成二维码并保存

js 生成二维码并点击下载软件_js生成二维码并保存html部分<h1>文字生成二维码及生成可下载的图片</h1><div><inputid=”input”value=”http://www.baidu.com”type=”text”><buttontype=”button”onclick=”refresh()”>生出来</button></div><divid=”output”><!–这里放canvas格式的二维

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

html 部分

<h1>
    文字生成二维码及生成可下载的图片
</h1>
<div><input id="input" value="http://www.baidu.com" type="text"><button type="button" onclick="refresh()">生出来</button></div>
<div id="output">
    <!--这里放canvas格式的二维码-->
</div>
<p>上面的码是使用canvas标签, 下面的是img标签</p>
<div id="img-qr">
    <!--放img格式的二维码-->
</div>
<p id="download">
    <!--放下载链接-->
</p>

js

我们先引入两个js文件

<script src="http://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://cdn.bootcss.com/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>
 window.onload = function () { 
   
        refresh();
    };

    function refresh() { 
   
        let text = document.getElementById("input").value;
        creater(text);
    }

    /** * 生成二维码及下载链接的函数 * @param text 传入你要生成二维码的文字 */
    function creater(text = '') { 
   
        //http://www.baidu.com可以自定义任意你要的链接或者文字
        jQuery('#output').empty().qrcode(text);
        let drawing = document.getElementsByTagName('canvas')[0];
        //确定浏览器支持<canvas>元素
        if (drawing.getContext) { 
   
            let context = drawing.getContext('2d');
            console.log(context);
            //取得图像的数据 URI
            let imgURI = drawing.toDataURL("image/png");

            //显示img格式图片开始(不要此步可以跳过)
            let image = document.createElement("img");
            image.src = imgURI;
            $("#img-qr").empty().append(image);
            //显示img格式图片结束(不要此步可以跳过)

            //显示下载链接开始
            let a = document.createElement("a");
            a.href = imgURI;
            //设置下载链接的文字提示
            a.innerText = 'download qrcode';
            //设置下载的文件名
            a.download = 'test.png';
            document.body.appendChild(a);
            $("#download").empty().append(a);
            //显示下载链接结束
        }
    }

界面效果
在这里插入图片描述

如果想生成中文,并且出现了乱码,可以使用下面方法将input文字进行转换

function toUtf8(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;
        }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180755.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AlphAction编译不通过问题:error: command ‘:/home/yst/cudas/cuda-10.0/bin/nvcc‘ failed with exit status 1「建议收藏」

    AlphAction编译不通过问题:error: command ‘:/home/yst/cudas/cuda-10.0/bin/nvcc‘ failed with exit status 1「建议收藏」1.问题描述按照AlphAction官方地址中INSTALL.md一步一步执行,到最后一步pipinstall-e.总是报错,大片红色,换了台工作站还是不行,并且两台报错还不一样。目前已解决问题这台工作站配置是Ubuntu16.04,CUDA=10.0,Pytorch=1.4,使用Anaconda管理环境。完整报错描述:error:command‘:/home/yst/cudas/cuda-10.0/bin/nvcc’failedwithexitstatus1——–

    2022年7月27日
    2
  • MC蒙特卡洛_我的世界mcc是什么

    MC蒙特卡洛_我的世界mcc是什么MCMC(一)蒙特卡罗方法MCMC(二)马尔科夫链MCMC(三)MCMC采样和M-H采样MCMC(四)Gibbs采样作为一种随机采样方法,马尔科夫链蒙特卡罗(MarkovChainMont

    2022年8月1日
    25
  • android studio接口调用_android studio jdk版本

    android studio接口调用_android studio jdk版本Android做jni的时候需要根据nativejava类生成对应的.h头文件,然后根据.h头文件写cpp文件。在Androidstudio中可以添加自定义工具,将javah指令添加进去首先我们看下javah的指令格式由此指令我们知道怎么使用javah指令例如有java文件D:\project\Test\app\src\main\java\com\example\test.java编译生成的class文件位于D:\project\Test\app\build\interm.

    2022年9月24日
    0
  • 杭电 1142 十字链表存储

    杭电 1142 十字链表存储  本来是想用二维数组实现的,但是想了一下发现,如果数据是稀疏矩阵的话,用二维数组存就会造成很多的空间浪费,而且遍历的时候也很浪费时间。学数据结构的时候书上教我们使用十字链表来存储稀疏矩阵,于是就想着用十字链表来实现。然后我发现我忘了十字链表的代码实现了…默默地去翻书,捣置了好久,终于写好了,乐滋滋的去oj提交代码,结果时间超限……  哎~把代码贴上来,就当加深一下十字链表的记忆吧~~#in…

    2022年6月18日
    22
  • sql2000数据库置疑造成的原因以及如何解决置疑「建议收藏」

    sql2000数据库置疑造成的原因以及如何解决置疑「建议收藏」sql2000数据库置疑造成的原因以及如何解决置疑

    2022年8月21日
    3
  • mybatiscodehelperpro2.9.3激活码[免费获取]

    (mybatiscodehelperpro2.9.3激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsa…

    2022年3月21日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号