首页 > 代码库 > JS调用产生二维码

JS调用产生二维码

       之前一直采用的是java后台调用qrcode.jar的形式产生二维码,然后web前台展示的形式显示二维码,后来感觉如果能调用JS框架产生二维码的话不久更好。至少能减少与浏览器的交互次数,减轻后台的压力。

       搜了一些资料后感觉没有一个拿来就能用的,至少IE浏览器的兼容还是有问题,通过自己的调试写了一个demo.希望能够帮助到大家,为大家节省时间

       具体的demo可以通过http://download.csdn.net/detail/fugui6611634/7337467来下载

 

将一个字符串(可以是中文,在生成二维码图片之前将中文转码)生成二维码图片,如果想要带log的二维码,可以在生成后的二维码中间部位自己添加一个小log,log图片不要太大,不然就扫描不出内容了。

[html] view plaincopyprint?
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <title></title>
  4. <script src=http://www.mamicode.com/"js/jquery-1.8.3.js" type="text/javascript"></script>
  5. <script src=http://www.mamicode.com/"js/jquery.qrcode.min.js" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. $(function () {
  8. $("#bt").bind("click", function () {
  9. text = $("#text").val();
  10. $("#div_div").qrcode(utf16to8(text));
  11. })
  12. })
  13. function utf16to8(str) { //转码
  14. var out, i, len, c;
  15. out = "";
  16. len = str.length;
  17. for (i = 0; i < len; i++) {
  18. c = str.charCodeAt(i);
  19. if ((c >= 0x0001) && (c <= 0x007F)) {
  20. out += str.charAt(i);
  21. } else if (c > 0x07FF) {
  22. out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
  23. out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
  24. out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  25. } else {
  26. out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
  27. out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
  28. }
  29. }
  30. return out;
  31. }
  32. </script>
  33. </head>
  34. <body>
  35. <input type="text" id="text" />
  36. <input type="button" value=http://www.mamicode.com/"shengc" id="bt" />
  37. <div id="div_div" style="width:400px;height:400px;border:1px solid #000;"></div>
  38. </body>
  39. </html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title>    <script src=http://www.mamicode.com/"js/jquery-1.8.3.js" type="text/javascript"></script>>
  1. jQuery(‘#output‘).qrcode({width:200,height:200,correctLevel:0,text:content});
  2. 具体的参数说明参见以下
  1. render : "canvas|table",//设置渲染方式
  2. width : 256, //设置宽度
  3. height : 256, //设置高度
  4. typeNumber : -1, //计算模式
  5. correctLevel : QRErrorCorrectLevel.H,//纠错等级
  6. background : "#ffffff",//背景颜色
  7. foreground : "#000000" //前景颜色