使用jquery.qrcode生成彩色二维码实例


Posted in Javascript onAugust 08, 2014

jquery.qrcode.js 是居于jquery类库的绘制二维码的插件,用它来实现二维码图形渲染支持canvas和table两种绘图方式。(jquery.qrcode.js 设置显示方式为table时在webkit核心浏览器如chrome下会变形,这个需要注意。)

下面为测试代码(增加了颜色控制,可以设置4个区块的颜色值,需要指定render为table。),效果如下:

使用jquery.qrcode生成彩色二维码实例

代码如下:

<html>
<head>
<title>JS生成二维码</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
<style>
 #output{
 margin-left:300px; 
 margin-top:100px; 
 }
</style>
</head>
<body>
<div id="output"></div>
<script>
 window.onload = function () {
 var trs = $('#output').qrcode({
  width: 100,
  height: 100,
  render: "canvas", //设置渲染方式 table canvas
  text: utf16to8("javascript生成二维码"),
  background: "#ffffff", //背景颜色 
  foreground: "red" //前景颜色 
 }).find('tr'), trLen = Math.floor(trs.size() / 2), tdLen = Math.floor(trs.eq(0).find('td').size() / 2), tds, bgColor;
 var colors = [['#ff0000', '#0100e2'], ['#00ed01', '#9f4d95']];
 trs.each(function (j) {
  tds = $(this).find('td');
  tds.each(function (i) {
  bgColor = this.style.backgroundColor;
  if (bgColor == 'red') {
   this.style.backgroundColor = colors[j < trLen ? 0 : 1][i < tdLen ? 0 : 1];
  }
  });
 });
 }
 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>
 
</body>
</html>

jquery-qrcode这个库是采用 charCodeAt这个方式进行编码转换的,而这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式,英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了。
 
解决方式:在二维码编码前把字符串转换成UTF-8,具体代码如上utf16to8函数

PS:本站还提供了一个功能非常强大的二维码生成工具,感兴趣的朋友可以参考一下:

Javascript 相关文章推荐
javascript Zifa FormValid 0.1表单验证 代码打包下载
Jun 08 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
通过Javascript读取本地Excel文件内容的代码示例
Apr 08 Javascript
JS动态显示表格上下frame的方法
Mar 31 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
深入探讨Vue.js组件和组件通信
Sep 12 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
Sep 29 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
Vue操作Storage本地化存储
Apr 29 Vue.js
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 #Javascript
js调试工具console.log()方法查看js代码的执行情况
Aug 08 #Javascript
JS创建类和对象的两种不同方式
Aug 08 #Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 #Javascript
jquery datatable后台封装数据示例代码
Aug 07 #Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 #Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 #Javascript
You might like
聊天室php&amp;mysql(二)
2006/10/09 PHP
一个好用的分页函数
2006/11/16 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php实现字符串翻转的方法
2015/03/27 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
基于jquery的气泡提示效果
2010/05/31 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Python Flask-web表单使用详解
2017/11/18 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python使用列表的最佳方案
2020/08/12 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
如何写毕业求职自荐信
2013/11/06 职场文书
自主招生自荐书
2013/11/29 职场文书
高中生职业规划范文
2014/03/09 职场文书
环保小标语
2014/06/13 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书