前端生成二维码方案对比:jquery-qrcode与QRCode.js
本文对比了前端生成二维码的两种主流方案:jquery-qrcode与QRCode.js。jquery-qrcode体积小但暂不支持中文;QRCode.js支持中文且可渲染为table、svg或canvas。文章详细解析了QRCode.js的render、text、width、height、correctLevel及颜色配置参数,并提供完整代码示例。
二维码概述与前端生成背景
摘要:
百度百科上是这样介绍二维码的:二维码(Quick Response Code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙。在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子商务应用、车辆管理、信息传递等。如今智能手机扫一扫(简称313)功能的应用使得二维码更加普遍,随着国内物联网产业的蓬勃发展,更多的二维码技术应用解决方案被开发,二维码成为移动互联网入口真正成为现实。
鉴于二维码在网页中的普遍存在,前端技术如何实现二维码的生成?本文将分享前端生成二维码的具体方法。
简介:
QRCode.js是一个JavaScript库,支持跨浏览器使用HTML5 Canvas和SVG在DOM中绘制二维码。本文主要基于该库进行介绍。
浏览器:
支持IE6至IE10、Chrome、Firefox、Safari、Opera、Mobile Safari、Android、Windows Mobile等环境。
jquery-qrcode方案分析
jquery-qrcode:
该库特点为操作简单、体积小,压缩后仅14k,但不支持中文编码。
<script src="http://cdn.staticfile.org/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="../jquery.qrcode.min.js"></script>
<div id="qrcode"></div>
<script>
$(function(){
$('#qrcode').qrcode("http://www.cnblogs.com/xiyangbaixue");
// 更详细的配置
// $('#qrcode').qrcode({
// text: "http://www.cnblogs.com/xiyangbaixue", // 要编码的字符串
// width: 50, // 定义宽度
// height: 50, // 定义高度
// background: "#ccc", // 背景色
// foreground: "red" // 前景色
// });
})
</script>
效果:

QRCode.js方案与SVG支持
qrcodejs:
qrcodejs生成的二维码扫描不会出现乱码,且支持选择渲染元素类型。
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="qrcode.js"></script>
<div id="qrcode"></div>
<script>
new QRCode(document.getElementById("qrcode"), "http://www.cnblogs.com/xiyangbaixue");
// 或者
// new QRCode(document.getElementById("qrcode"), {
// text: "http://www.cnblogs.com/xiyangbaixue",
// width: 50,
// height: 50,
// background: "#ccc",
// foreground: "red"
// });
</script>
使用svg:
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="qrcode.js"></script>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="qrcode"/>
</svg>
<script type="text/javascript">
var qrcode = new QRCode(document.getElementById("qrcode"), {
width : 100,
height : 100,
useSVG: true
});
qrcode.makeCode("http://www.cnblogs.com/xiyangbaixue");
// qrcode.clear(); // 清除二维码
</script>
效果:

QRCode.js配置参数详解
配置参数:
render string
指定用于绘制二维码的DOM节点元素类型,可选值包括table、svg和canvas。
默认渲染顺序为:canvas -> svg -> table。
text string
需要编码的字符串内容。
默认值为空字符串""。
width number
二维码的宽度,单位为像素px。
注意:当使用table或svg绘制时,宽度会适当减小,以确保能整除二维码矩阵的维度。
默认值为256。
height number
二维码的高度,单位为像素px。
注意:当使用table或svg绘制时,高度会适当减小,以确保能整除二维码矩阵的维度。
默认值为256。
correctLevel number
纠错级别,可选值为0、1、2、3,数值越大表示所需的纠错级别越高。
默认值为3。
background color
二维码的背景颜色。
默认值为#FFFFFF。
foreground color
二维码的前景颜色。
默认值为#000000
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
