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. ...
随机推荐
- Java在Web开发语言上败给了PHP(转)
PHP的主要语言开发者之一.Zend公司的创始人之一Andi Gutmans最近在blog中直言不讳地批评了Java语言.他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java ...
- Oracle基础之分析表
analyze table tablename compute statistics; analyze index indexname compute statistics; (analyze 不会重 ...
- 斐波那契数列(C++ 和 Python 实现)
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 1. 写一个函数,输入 n, 求斐波那契(Fibonacci ...
- deb文件怎么安装
deb 是 ubuntu .debian 的格式.rpm 是 redhat .fedora .suse 的格式.deb是debian发行版的软件包ubuntu是基于debian 发行的 所有可以用.d ...
- Azure 中 Linux 虚拟机的大小
本文介绍可用于运行 Linux 应用和工作负荷的 Azure 虚拟机的可用大小与选项. 此外,还提供在计划使用这些资源时要考虑的部署注意事项. 本文也适用于 Windows 虚拟机. 类型 大小 说明 ...
- redis3.2.8安装与简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的 ...
- SQL Server 没有足够的内存继续执行程序 (mscorlib)的解决办法
问题: SQL Server 执行大脚本时,出现如下提示信息: 解决方法: 使用 sqlcmd.exe 导入 1.win + r,输入 cmd 进入 C:\Program Files\Microsof ...
- ArcSde服务启动后又停止
问题:突然发现ArcSde服务无法启动,“ArcSde服务启动后又停止,......” 环境:Win7+ArcSDE10 +Oracle11g 由于本人使用ArcSde时间不长,基本没有遇到过什么问题 ...
- 2019.1.7 Mac的Vscode插件总结
Vscode插件 通用插件 Chinese 配置中文界面 HTML Snippets H5代码片段以及提示 HTML CSS Support 让 html 标签上写class 智能提示当前项目所支持的 ...
- VMware12上安装CentOS无法上网问题
进入/etc/sysconfig/network-scripts目录下,查看有没有ifcfg-XXX的文件(ifcfg-lo除外), 没找到网卡设备,原因:由于Vmware虚拟网卡和Linux兼容问题 ...