Home  >  Article  >  Web Front-end  >  JS generates QR code

JS generates QR code

php中世界最好的语言
php中世界最好的语言Original
2018-03-17 09:46:072589browse

This time I will bring you JS to generate QR code. What are the precautions for JS to generate QR code? The following is a practical case, let’s take a look.

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['width'] || !params['height'] || !params['url']){
   console.log('生成二维码参数错误');
   return false;
  }
  var image = new Image();
  var imageUrl = "http://pan.baidu.com/share/qrcode?w=" + params['width'] + "&h=" + params['height'] + "&url=" + params['url'] + "";
  image.src = imageUrl;
  $ele.attr('src', 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:

$('#code').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("字符串测试!"); 
$('#code').qrcode(str);
2. Dynamically generate in the Vue-cli project 2 QR code

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

2. Introduce

import QRCode from 'qrcode'  //定义生成二维码组件
3 in main.js. Use it when needed Introduce

import QRCode from 'qrcode'   //引入生成二维码组件
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='http://www.kspxzx.com/#/guard'+"?unique_code="+this.QueryDetail;var canvas = document.getElementById('canvas')
    QRCode.toCanvas(canvas, this.QueryDetail, function (error) {
    if (error) console.error(error)
    console.log('success!');
    })
  }
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

JS implements random switching of WeChat ID

##String.prototype.formatHow to use string splicing


How does webpack package node.js


How does js make a small ball animation

The above is the detailed content of JS generates QR code. 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