标签:文本 tle jquery table round 纠错 元素 兼容 asc
在项目中PC端微信支付的时候需要前端通过js的方式生成一个二维码,二维码内容为后台传过来的json数据
jquery.qrcode.js 是基于jquery类库的绘制二维码的插件,在页面中调用该插件就能生成对应的二维码。用它来实现二维码图形渲染支持canvas和table两种绘图方式。(jquery.qrcode.js 设置显示方式为table时在webkit核心浏览器如chrome下会变形,这个需要注意。)
Qrcode生成二维码可以使用jquery.qrcode.min.js插件
官网地址 https://larsjung.de/jquery-qrcode/
1:加载 jquery.min.js 和 jquery.qrcode.min.js
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.qrcode.min.js"></script>
2:创建一个用于包含 QRcode 图片的 DOM 元素
<div id="qrcode">
<div id="codeico"></div>
</div>
3:js
<script>
//generateQRCode生成二维码的封装函数
function generateQRCode(rendermethod, picwidth, picheight, url) {
$("#qrcode").qrcode({
render: rendermethod, // 渲染方式有table方式(IE兼容)和canvas方式,默认使用canvas方式
width: picwidth, //二维码宽度
height:picheight, //二维码高度
text: utf16to8(url), //设置二维码文本的内容
typeNumber:-1,//计算模式
correctLevel:2,//二维码纠错级别
background:"blue",//背景颜色
foreground:"#fff" //二维码颜色
});
}
generateQRCode("table",300, 300, "二维码"); //可以在页面中直接生成一个二维码,可以用手机读取二维码信息。
//jquery-qrcode这个库是采用 charCodeAt这个方式进行编码转换的,而这个方法默认会获取它的 Unicode 编码,英文是没有问题,如果是中文,需要进行
//中文编码格式转换
function utf16to8(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;
}
</script>
基于jquery类库的绘制二维码的插件jquery.qrcode.js
标签:文本 tle jquery table round 纠错 元素 兼容 asc
原文地址:http://www.cnblogs.com/kelly2017/p/7207670.html