如何使用qrcode.js制作二维码生成器

如何使用qrcode.js制作二维码生成器

现代web应用程序需要为某些功能生成二维码,以便为最终用户提供一种方便的数据共享方式,如UPI支付地址、发票详情、联系人名片、网页链接等一些常见的二维码用例。

QR(快速响应)码 是一种可被机器读取的矩阵形条码,它包含一系列黑白方格,通常用于保存URL或其他数据,供智能手机上的相机等成像系统读取。与UPC条码相比,QR码具有更快的读取速度和更大的存储容量。现在,我们的任务是借助qrcode.js创建二维码生成器,并通过示例了解实现它的各种方法。

QRCode.js 是一个流行的开源前端易于使用的JavaScript库,用于创建二维码。该库支持使用HTML 5画布和表格标签的跨浏览器二维码生成。QRCode.js不需要任何额外的依赖项。

语法: 该库向我们提供了一个名为QRCode的类,构造函数接受两个参数,如下所示:

new QRCode(Target,Options);

参数值:

  • Target [字符串或HTML元素]:该参数指定要显示二维码的字符串或元素的id。例如,
new QRCode(document.getElementById("id-of-element"), "content of QR Code");
or
new QRCode("id-of-element", "content of QR code");
  • Options [string或JSON格式]: 此参数包含2个选项:
    • string: 对于基本用法,我们可以直接提供二维码的内容
    • JSON: 当我们需要进行一些自定义时
      • text [string]: 二维码的内容
      • width, height [int]: 二维码的宽度和高度
      • colorDark [string]: 二维码的颜色
      • colorLight [string]: 二维码的背景颜色
      • correctlevel: 错误校正级别
new QRCode(document.getElementById("qrcode"), "content as string");
or
var qrcode = new QRCode("test", {
 text: "http://www.geeksforgeeks.org",
 width: 256,
 height: 256,
 colorDark : "#000000",
 colorLight : "#ffffff",
 correctLevel : QRCode.CorrectLevel.H
});

方法: 后端服务器和前端客户端都可以生成一个QR码。本文将涵盖客户端的QR码生成。

需求或依赖: 我们可以将以下库导入项目的3种方式:

  • 本地下载脚本文件 [ 链接 ]
  • 通过CDN [ 链接 ]
  • 使用Node包管理器 [ 链接 ]

生成QR码的过程:

  • 导入上述库到我们的项目中。
  • 决定要在网页上显示QR码的目标位置。
  • 在目标位置创建一个QR码元素/容器,并为其提供一个标识符,如id。
  • 决定QR码的外观和内容。
  • 使用目标和选项创建一个QRCodejs对象。

注意 :以下示例演示了导入库的CDN链接。

静态QR码生成: 当QR码的内容在页面渲染时已经可用,并且不会因用户的操作而改变时,这种方法适用。我们放置一个包含QR码的

<

div>元素。这个

<

div>有一个id用于标识,并且可以根据需求放置在body元素的适当位置。然后,我们需要包含一个

div>元素的id和选项对QR码的内容进行初始化。

示例1: 在这个示例中,QR码的内容是链接到GeeksforGeeks网站。

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8" />
    <meta name="viewport"
         content="width=device-width, 
                        initial-scale=1.0" />
    <title>QR Code Generator</title>
    
    <style>
        h1, h3 {
          color: green;
        }
        body, header {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
    </style>
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js">
    </script>
</head>
 
<body>
    <header>
        <h1>GeeksforGeeks</h1>
        <h3>QR code generator using qrcode.js</h3>
        <h3>To visit geeksforgeeks.org scan below code</h3>
    </header>
    <main>
        <div id="qrcode"></div>
    </main>
     
    <script>
        var qrcode = new QRCode("qrcode",
        "https://www.geeksforgeeks.org");
    </script>
</body>
 
</html>

输出 :

如何使用qrcode.js制作二维码生成器

动态生成QR码: 这适用于在呈现页面时QR码的内容不可用,并且取决于用户执行的操作,应该动态生成QR码。在这里,与上一个示例类似,我们需要放置一个带有id的目标

<

div>元素,一旦生成就包含一个QR码。对于动态生成演示,下面的示例使用一个带有input元素的表单,用于接收用户输入的QR码内容。

在脚本中,我们主要有两个东西,即generateQrCode函数和Form提交事件监听器。在generateQrCode函数中,接受QR码内容作为参数,并使用QR码的目标div元素和带有内容的选项生成QR码。而在Form提交事件监听器中,一旦表单提交,我们首先阻止提交事件,因为我们不想将请求发送到任何服务器。然后我们检查QRcode对象是否已经可用。

<

div>元素中呈现QR码。
* 如果已经可用,则使用现有对象,并使用QRcode类提供的一个方法makeCode,该方法需要一个参数即QR码的内容,当调用时重新生成QR码,但保留先前提供的其他选项。

示例2: 此示例演示了使用QRCode.js生成动态QR码的过程。

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8" />
    <meta name="viewport"
          content="width=device-width, 
                         initial-scale=1.0" />
    <title>QR Code Generator</title>
    <style>
        h1, h3 {
          color: green;
        }
        body, header {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
    </style>
 
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js">
    </script>
</head>
 
<body>
    <header>
        <h1>GeeksforGeeks</h1>
        <h3>QR code generator using qrcode.js</h3>
        <h3>Enter QR code content and generate QR</h3>
    </header>
    <main>
        <form action="/"
              id="qr-generation-form">
            <input type="text"
                   name="qr-code-content"
                   id="qr-content"
                   value=""
                   placeholder="Enter QR content"
                   autocomplete="off" />
            <input type="submit"
                   value="Generate QR Code" />
        </form><br />
        <div id="qr-code"></div>
    </main>
</body>
<script>
    let qrContentInput = document.getElementById("qr-content");
    let qrGenerationForm = 
    document.getElementById("qr-generation-form");
    let qrCode;
     
    function generateQrCode(qrContent) {
      return new QRCode("qr-code", {
        text: qrContent,
        width: 256,
        height: 256,
        colorDark: "#000000",
        colorLight: "#ffffff",
        correctLevel: QRCode.CorrectLevel.H,
      });
    }
     
    // Event listener for form submit event
    qrGenerationForm.addEventListener("submit", function (event) {
      // Prevent form submission
      event.preventDefault();
      let qrContent = qrContentInput.value;
      if (qrCode == null) {
           
        // Generate code initially
        qrCode = generateQrCode(qrContent);
      } else {
           
        // If code already generated then make 
        // again using same object
        qrCode.makeCode(qrContent);
      }
    });
</script>
 
</html>

输出

如何使用qrcode.js制作二维码生成器

参考资料 : 库仓库: https://github.com/davidshimjs/qrcodejs

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程