Home  >  Article  >  Web Front-end  >  Use JS code to create QR codes and generate functions (detailed tutorial)

Use JS code to create QR codes and generate functions (detailed tutorial)

亚连
亚连Original
2018-05-31 16:10:424213browse

This article shares with you the simple function of QR code generation using 11 lines of simple JS code. Friends who are interested can refer to it.

HTML code:

<img style="display: none" id="qrcode" data-width="100" data-height="100" data-url="https://www.baidu.com/">

Related JS code:

/**
  * 生成二维码
  * data-width={宽度}
  * data-height={高度}
  * data-url={链接}
  * @param $ele
  */
 var generatorQRCODE = function ($ele) {
  $ele.hide();
  var params = $ele.data();
  if(!params[&#39;width&#39;] || !params[&#39;height&#39;] || !params[&#39;url&#39;]){
   console.log(&#39;生成二维码参数错误&#39;);
   return false;
  }
  var image = new Image();
  var imageUrl = "http://pan.baidu.com/share/qrcode?w=" + params[&#39;width&#39;] + "&h=" + params[&#39;height&#39;] + "&url=" + params[&#39;url&#39;] + "";
  image.src = imageUrl;
  $ele.attr(&#39;src&#39;, imageUrl);
  $ele.show();
 };
 
 generatorQRCODE($("#qrcode"));

Let me share with you other generated 2 QR code case:

Use jquery.qrcode to generate QR code

1. First, add the jquery library file and qrcode plug-in to the page

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.qrcode.min.js"></script>

2. Add the following code to the page where the QR code needs to be displayed:

<p id="code"></p>

3. Call the qrcode plug-in. Supports two methods of canvas and table for image rendering

canvas method:

$(&#39;#code&#39;).qrcode("http://www.baidu.com"); //任意字符串

table method:

$("#code").qrcode({ 
  render: "table", //table方式 
  width: 200, //宽度 
  height:200, //高度 
  text: "www.helloweba.com" //任意内容 
});

4. If the generated QR code content contains text, you need to Convert the string to UTF-8

Define the conversion method:

function toUtf8(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;  
}

Call the conversion method when generating:

var str = toUtf8("字符串测试!"); 
$(&#39;#code&#39;).qrcode(str);

2. Dynamically generate in the Vue-cli project 2 QR code

1. Introduce qrcode--------npm install qrcode

2. Introduce

import QRCode from &#39;qrcode&#39;  //定义生成二维码组件

3 in main.js. Use it when you need to Introduce

import QRCode from &#39;qrcode&#39;   //引入生成二维码组件

into the component that generates the QR code. 4. Define the generated location in HTML and pay attention to adding the style

<template>
 <p id="query">
  <h1>二维码:</h1>
  <canvas id="canvas"></canvas>
 </p>

</template>
#canvas{
  width: 80%!important;
  height: auto!important;
 }

5. Define the method to generate the QR code in js and call

//动态生成二维码
  useqrcode(){    //生成的二维码内容,可以添加变量    this.QueryDetail=&#39;http://www.kspxzx.com/#/guard&#39;+"?unique_code="+this.QueryDetail;var canvas = document.getElementById(&#39;canvas&#39;)
    QRCode.toCanvas(canvas, this.QueryDetail, function (error) {
    if (error) console.error(error)
    console.log(&#39;success!&#39;);
    })
  }

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

Solution to the flashing problem of vue page loading

##jQuery implements the function of jumping between browsers and passing parameters [Support Chinese characters]

vue-cli axios request method and cross-domain processing issues

The above is the detailed content of Use JS code to create QR codes and generate functions (detailed tutorial). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn