qrjs2.js是一款仿纯js二维码生成插件。该二维码生成插件能生成4种类型的二维码:SVG格式的二维码,data URI为SVG的图像,data URI为PNG的图像,和表格形式的二维码。

安装

可以通过npm和bower来安装qrjs2.js插件。

npm install qrjs2
bower install qrjs2                  
                

使用方法

在页面中引入qrjs2.min.js文件。

<script type="text/javascript" src="path/to/qrjs2.min.js"></script> 
                
生成svg二维码

通过下面的代码可以生成svg格式的二维码。

var svgElement = document.createElement("div"),
u = "http://www.htmleaf.com/",
s = QRCode.generateSVG(u, {
    ecclevel: "M",
    fillcolor: "#FFFFFF",
    textcolor: "#373737",
    margin: 4,
    modulesize: 8
  });
svgElement.appendChild(s);
document.body.appendChild(svgElement);               
                

生成后的代码如下:

<svg viewBox="0 0 264 264" style="shape-rendering:crispEdges">
  <style scoped="scoped">.bg{fill:#FFFFFF}.fg{fill:#373737}</style>
  <rect class="bg" fill="none" x="0" y="0" width="264" height="264"></rect>
  <rect class="fg" fill="none" x="32" y="32" width="8" height="8"></rect>
    ...
</svg>
                
生成Data URI SVG格式的二维码

通过下面的代码可以生成Data URI SVG格式的二维码。

if (document.implementation.hasFeature("http://www.w3.org/2000/svg","1.1")) {
  var dataUriSvgImage = document.createElement("img"),
  u = "http://www.htmleaf.com/",
  s = QRCode.generateSVG(u, {
      ecclevel: "M",
      fillcolor: "#FFFFFF",
      textcolor: "#373737",
      margin: 4,
      modulesize: 8
    });
  var XMLS = new XMLSerializer();
  s = XMLS.serializeToString(s);
  s = "data:image/svg+xml;base64," + window.btoa(unescape(encodeURIComponent(s)));
  dataUriSvgImage.src = s;
  document.body.appendChild(dataUriSvgImage);
}        
                

生成后的代码如下:

<img src="data:image/svg+xml;base64,...">
                
生成Data URI PNG格式的二维码

通过下面的代码可以生成Data URI PNG格式的二维码。

u = "http://www.htmleaf.com/",
s = QRCode.generatePNG(u, {
    ecclevel: "M",
    format: "html",
    fillcolor: "#FFFFFF",
    textcolor: "#373737",
    margin: 4,
    modulesize: 8
  });
dataUriPngImage.src = s;
document.body.appendChild(dataUriPngImage);     
                

生成后的代码如下:

<img src="data:image/png;base64,...">
                
生成表格格式的二维码

通过下面的代码可以生成表格元素格式的二维码。

var htmlTable = document.createElement("div"),
u = "http://www.htmleaf.com/",
s = QRCode.generateHTML(u, {
    ecclevel: "M",
    fillcolor: "#FFFFFF",
    textcolor: "#373737",
    margin: 4,
    modulesize: 8
  });
htmlTable.appendChild(s);
document.body.appendChild(htmlTable);  
                

生成后的代码如下:

<table style="border:32px solid #FFFFFF;background:#FFFFFF" cellspacing="0" cellpadding="0" border="0">
  <tbody>
      <tr>
          <td style="width:8px;height:8px;background:#373737"></td>
      ...
    </tr>
  </tbody>
</table>
                

qrjs2.js二维码生成插件的github地址为:https://github.com/englishextra/qrjs2