1.先利用 qrcode 生成二维码

引入qrcode.js ,地址为 qrcodejs-04f46c6.zip 点击打开链接

页面:

<button onclick="createQrcode()">点我生成网二维码</button>
<button onclick="downloadQrcode()">点我下载二维码</button>
<div id="qrcode"></div>
二维码生成函数:
function createQrcode(){var qrcode = new QRCode(document.getElementById("qrcode"), {text: "hahaha",  //你想要填写的文本width: 300, //生成的二维码的宽度height: 300, //生成的二维码的高度colorDark : "#000000", // 生成的二维码的深色部分colorLight : "#ffffff", //生成二维码的浅色部分correctLevel : QRCode.CorrectLevel.H});}

此时可以看到二维码已经在页面上展示了。

qrcode的方法 :

makeCode(text) //设置内容
clear()   //清除内容。

2.下载二维码:

我们先看一下,生成二维码之后页面上的DOM元素展示。可以看到在id为qrcode的元素中多了俩个,一个是canvas元素,另外一个是img,就是我们生成的二维码图片。以base64的编码格式描述图片信息。

1)第一种:只需要获取到生成的img元素,并且填充到canvas中,在使用a标签的download 和href属性就可以实现下载了。

    function downloadQrcode(){var canvas = document.createElement("canvas");  //创建canvas元素var qrcode = document.getElementById('qrcode');var img = qrcode.getElementsByTagName('img')[0]; // 获取到图片元素。canvas.height = img.height;canvas.width = img.width;var ctx = canvas.getContext("2d");  //获取context对象ctx.drawImage(img,0,0);             //向画布上绘制图像var link = document.createElement("a"); var url = canvas.toDataURL("image/png"); // 将canvas中图片转化为base64码link.setAttribute("href",url);link.setAttribute("download",'123.png');link.click();}}

2)第二种:直接获取到img的src属性,填充到a标签的href即可,比较简单一些。

 function downloadQrcode(){var qrcode = document.getElementById('qrcode');var img = qrcode.getElementsByTagName('img')[0];var link = document.createElement("a");var url = img.getAttribute("src");link.setAttribute("href",url);link.setAttribute("download",'123.png');link.click();}

3.完整代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="http://static.runoob.com/assets/qrcode/qrcode.min.js"></script>
</head>
<body>
<button onclick="createQrcode()">点我生成网二维码</button>
<button onclick="downloadQrcode()">点我下载二维码</button>
<div id="qrcode"></div>
</body>
</html>
<script>function createQrcode(){qrcode1 = new QRCode(document.getElementById("qrcode"), {text: "hahaha",width: 300, //生成的二维码的宽度height: 300, //生成的二维码的高度colorDark : "#000000", // 生成的二维码的深色部分colorLight : "#ffffff", //生成二维码的浅色部分correctLevel : QRCode.CorrectLevel.H});}function downloadQrcode(){var qrcode = document.getElementById('qrcode');var img = qrcode.getElementsByTagName('img')[0];var link = document.createElement("a");var url = img.getAttribute("src");link.setAttribute("href",url);link.setAttribute("download",'123.png');link.click();}
</script>

js 生成二维码并下载相关推荐

  1. JS生成二维码以及点击下载二维码

    JS生成二维码 效果 扫描二维码可访问指定链接或当前网站链接,内容可以自己更改 "复制链接",点击按钮复制当前网站链接 如何获取当前网站链接 源码 textarea{opacity ...

  2. qrcode.js使用js生成二维码(并下载)的实践

    知识点 base64数据形式 Base64是一种用64个字符来表示任意二进制数据的方法. – 廖雪峰官方网站 Base64编码有哪些情景需求? – 知乎 案例场景 后台生成邀请链接,前端拿到链接之后处 ...

  3. vue 2.x项目 vue-qriously 生成二维码并下载、cliploard复制粘贴

    近日,重构项目某一老模块时,有一个功能是生成二维码并下载,还可以复制链接.列表每项都有二维码.下载二维码和复制链接和列表上方总的二维码. 老模块是用的qrocode中文文档,qrcode github ...

  4. JS生成二维码(兼容各种浏览器及中文)

    本文将介绍如何使用JS生成二维码,兼容各种浏览器及手机端,支持中文. 代码如下: <!DOCTYPE html> <html> <head> <meta ch ...

  5. js生成二维码以及插入图片

    js生成二维码以及插入图片 先根据qrcode官网demo,不同属性值的变化,二维码的变化效果:https://larsjung.de/jquery-qrcode/latest/demo/ 进入dem ...

  6. vue js前端根据所需参数生成二维码并下载

    需要一个插件 qrcodejs2, 使用 npm install qrcodejs2 --save 下载该依赖包. 在vue中引入(我这边是vue2).import QRCode from 'qrco ...

  7. qrcode.js 生成二维码包含logo和背景图片及IE下载二维码

    思路: 1. 通过qrcode.js 生成带logo的二维码 2. 将背景图片.logo与生成的二维码图通过canvas 绘制在一起形成一个新的canvas 3. 将canvas 转成base64的u ...

  8. jquery二维码生成插件jquery.qrcode.js,生成二维码并下载

    下载插件: 在GitHub上,下载qrcode二维码插件: https://github.com/jeromeetienne/jquery-qrcode Vue项目可直接通过node.js安装:npm ...

  9. js生成二维码,并将生成的二维码进行保存(手动下载)

    生成二维码并保存为图片,点击下载此二维码 简单实现的效果,如有更好的请指教 利用jquery 加jquery.qrcode //外部的js<script src="./jquery/2 ...

最新文章

  1. java-简单计算器窗口
  2. MySQL常见错误代码及代码说明
  3. Sitecore7.5 安装指南 -- 从.EXE文件安装Sitecore CMS
  4. Boost Asio总结(15)class basic_stream_socket
  5. java内存分配模型优点_高并发实战(二)-并发基础 缓存 MESI 内存模型
  6. 转载:东拉西扯:产业链
  7. 怎么对接口做幂等性操作?
  8. 计算机毕业设计asp.net的旅游网站(源码+系统+mysql数据库+Lw文档)
  9. 使用mutt和msmtp发送邮件
  10. PS和AE、PR的区别是什么?
  11. 通信原理及系统系列18—— 锁相环(鉴相器分析_1)
  12. wireshark抓包实验 分析 详解
  13. xv6操作系统中增加一个系统调用
  14. 账号密码忘了不要慌,教你用Python自动解密解码,轻松获取!
  15. RTX 4070TI和RTX 4080差距 RTX4070ti和4080区别对比
  16. 阿里云部署Java开发环境
  17. Lenovo T460 Fn功能键切换
  18. java bbs论坛管理系统_BBS论坛管理系统
  19. 软件构造课程面向对象编程学习心得
  20. 【ViewPager的学习】一、简单使用

热门文章

  1. 蓝牙耳机适合跑步戴吗,五款适合跑步蓝牙耳机推荐
  2. 无穷级数(三)幂级数
  3. 关于松下A6伺服的再生电阻问题
  4. 商标专利注册申请流程
  5. ios放大镜效果始终不能去掉
  6. 【JavaScript】如何获取指定范围内的随机数
  7. golang基础-终端读(Scanln\bufio)、bufio文件读、、ioutil读读压缩、缓冲区读写、文件写入、文件拷贝
  8. 拯救你寻找资料之苦!浏览器隐藏在角落里的三个神奇搜索技巧,让你叹为观止!
  9. css设置半透明背景颜色并且内容不会受影响的解决办法
  10. js实现图片在div内滚轮放大缩小,有滚动条,双击回原状