jQuery.qrcode 生成二维码,并使用 jszip、FileSaver 下载 zip 压缩包至本地。
- 生成二维码
- 引用 jquery.qrcode.js ;连接:https://files.cnblogs.com/files/kitty-blog/jquery.qrcode.js 、https://files.cnblogs.com/files/kitty-blog/jquery.qrcode.min.js
/**
* 生成二维码
* @param {string} url 二维码url
* @param {string } picName 图片名称
*/
function create_QR(url, picName) {
//jquery.qrcode.js 插件生成二维码
$('#qrcodeid').qrcode({
width: 140,
height: 140,
render: "canvas", //设置渲染方式 table canvas
typeNumber: -1, //计算模式
correctLevel: 0,//纠错等级
background: "#ffffff",//背景颜色
foreground: "#000000",//前景颜色
text: url //链接(http开头的,自动跳状态链内容)或者文字
});
var len = $('#qrcodeid').find("canvas").length;
//给当前生成的canvas 添加data-picname 作为下载后的图片名称(.png类型图片)
$($('#qrcodeid').find("canvas")[len - 1]).data().picname = picName;
}
- 生成压缩包下载
- 引用jszip.js 和 FileSaver.js 连接:https://files.cnblogs.com/files/kitty-blog/jszip.js、https://files.cnblogs.com/files/kitty-blog/jszip.min.js、https://files.cnblogs.com/files/kitty-blog/FileSaver.js
/**下载二维码压缩包 */
function download() {
//创建压缩包对象 jszip.js
var zip = new JSZip();
//获取到所有已经生成好的二维码
var canvases = $("#qrcodeid").find('canvas');
$.each(canvases, function (i, item) {
var imgData = item.toDataURL('image/png').split('base64,')[1];
var picName = $(item).data().picname;
zip.file(picName, imgData, { base64: true });
});
//下载压缩包
zip.generateAsync({ type: "blob" }).then(function (content) {
// see FileSaver.js
saveAs(content, "二维码.zip");
});
//移除掉loading
setTimeout(function () {
$('#downloadLabel').removeClass("whirl standard");
}, 1500);
}
Html:
<div id="qrcodeid" class="hidden qr_area">
</div>
思路:根据用户勾选的数据内容,分别根据数ID 、标题等生成 对应的数据连接 url 、图片名称。
/**
* 点击下载
* @param {string} checkBoxName 复选框的name
*/ function download_data_check(checkBoxName) {
//check 是否选中需要生的二维码
var _checkedAll = $("input[name=" + checkBoxName + "]:checked");
if (_checkedAll.length === 0) {
baseAlert("warning", "请选择需要下载的内容");
return false;
}
//添加loading
$('#downloadLabel').addClass("whirl standard");
//获取到需要的数据信息
$.each(_checkedAll, function (i, item) {
var id = $(item).val();
var title = $(item).data().title;
var author = $(item).data().author;
getQR_info(id, title, author);
});
//开始下载压缩包
download();
}
/**
* 下载二维码
* @param {int} id 数据ID
* @param {string} title 标题
* @param {string} author 作者
*/
function getQR_info(id, title, author) {
//二维码链接
var url = window.location.origin + '/WX/Inscription/Detail/' + id;
//图片名称 png类型
var pic = title + author + '.png';
//生成二维码
create_QR(url, pic);
}
jQuery.qrcode 生成二维码,并使用 jszip、FileSaver 下载 zip 压缩包至本地。的更多相关文章
- 使用jquery.qrcode生成二维码及常见问题解决方案
转载文章 使用jquery.qrcode生成二维码及常见问题解决方案 一.jquery.qrcode.js介 jquery.qrcode.js 是一个纯浏览器 生成 QRcode 的 jQuery ...
- 使用jquery.qrcode生成二维码实现微信分享功能
前言: 最近有个这样的需求,在pc端的商品详情页增加分享功能. 微博分享.QQ好友分享.QQ空间分享这些都很常见.但是微信分享我还没有手动写过(以前改过). 最终效果如下图: 解决方案:使用jquer ...
- 使用jquery.qrcode生成二维码(转)
jQuery 的 qrcode 插件就可以在浏览器端生成二维码图片. 这个插件的使用非常简单: 1.首先在页面中加入jquery库文件和qrcode插件. <script type=" ...
- (转)js jquery.qrcode生成二维码 带logo 支持中文
场景:公司最最近在开发二维码支付业务,所以需要做一个html5中的二维码生成和部署! 前天用js生成二维码,节省服务器资源及带宽 原版jquery.qrcode不能生成logo,本文采用的是修改版 1 ...
- 使用jquery.qrcode生成二维码支持logo,和中文
/* utf.js - UTF-8 <=> UTF-16 convertion * * Copyright (C) 1999 Masanao Izumo <iz@onicos.co. ...
- jquery.qrcode 生成二维码带logo
<div id="container">这里是二维码显示位置</div> <script language="JavaScript" ...
- jquery.qrcode生成二维码支持中文
基本使用方法: 1.首先在页面中加入jquery库文件和qrcode插件. <script type="text/javascript" src="jquery.j ...
- qrcode.react和jquery.qrcode生成二维码
qrcode.react 1.安装 npm install qrcode.react 2.用法(这里用的ant design) import React from 'react'; import QR ...
- qrcode 生成二维码
qrcode 生成二维码 Demo: https://www.hgnulb.cn/freedom/qrcode/qrcode.html qrcodeGithub 地址: https://github. ...
随机推荐
- 学习C++从入门到精通的的十本最经典书籍
原文:http://blog.csdn.net/a_302/article/details/17558369 最近想学C++,找了一下网上推荐的书籍,转载过来给大家分享 转载自http://c.chi ...
- Python爬虫教程-29-验证码识别-Tesseract-OCR
本篇是关于验证码识别问题,也是Python爬虫笔记的一个结尾,使用 Tesseract Python爬虫教程-29-验证码识别-Tesseract-OCR 常见反爬虫手段: 验证码 1.简单图片,扭曲 ...
- 【Python】猜数小游戏(文件操作)
人生苦短,我用Python 关键词 1.多用户 2.字典记录所有成绩 3.每次游戏轮数&总游戏次数&平均每次游戏需要多少轮 字典Dictionary.列表List.元组Tuple差异化 ...
- Redhat Linux 7.3 虚拟机通过USB挂载NTFS格式的移动硬盘
分为如下几个步骤: 一.设置本地yum,安装gcc(如果本机已经安装gcc,则跳过此步) 在虚拟机连接linux iso安装盘 查看光盘挂载情况 mkdir /iso mount /dev/cdrom ...
- 二十三、css如何实现锯齿形---border-image
css如何实现这样的样式: 解决方案: 这里需要用到的技术是border-image的灵活运用,首先需要一张图片,这里我选中的是这样子的,此后 的图片可以拿这个更改圆形的颜色以更改锯齿颜色: 底部透明 ...
- anroid之异步不如异步
executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) 使用自定义的CorePoolSize为7的Executor(Executors.newFixedTh ...
- 从Microsoft SQL Server迁移到MySQL指南
转自 https://www.mysql.com/why-mysql/white-papers/sql-server-to-mysql-zh/ 由于 MySQL 将节约成本.自由选择平台.特性丰富等优 ...
- WCF服务上应用protobuf z
protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样 的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多.虽然是二进制数据格式,但并没有因此变得 ...
- kill -9 和kill-15的区别
kill -9大家应该是非常熟悉的,杀死进程一般用kill -9的吧. 今天接触到kill -15,kill -15也是杀死进程的.那个kill -15和kill -9有什么区别呢? 其实kill - ...
- Windows 10 X64 ISO 专业版&家庭版下载与永久激活
好久没有更新博客,算算时间,已经有4年了,好吧,今天突发奇想,想把今天安装Windows 10的过程给记录下来. 2015年的时候,微软就发布了Windows 10,当时正版的Win7.Win8都可以 ...