当前位置:首页 > JavaScript

js实现二维码生成

2026-04-05 03:42:19JavaScript

使用QRCode.js库生成二维码

QRCode.js是一个轻量级的JavaScript库,用于生成二维码。它不依赖其他库,可以直接在浏览器中使用。

安装方式:

<script src="https://cdn.jsdelivr.net/npm/qrcodejs@1.0.0/qrcode.min.js"></script>

基本用法:

// 创建二维码容器
<div id="qrcode"></div>

// 生成二维码
new QRCode(document.getElementById("qrcode"), {
    text: "https://example.com",
    width: 128,
    height: 128
});

高级选项:

new QRCode(document.getElementById("qrcode"), {
    text: "自定义内容",
    width: 200,
    height: 200,
    colorDark: "#000000",
    colorLight: "#ffffff",
    correctLevel: QRCode.CorrectLevel.H
});

使用jQuery-qrcode插件

对于使用jQuery的项目,jQuery-qrcode是一个方便的插件。

js实现二维码生成

安装:

<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-qrcode@1.0.0/jquery.qrcode.min.js"></script>

使用方法:

$("#qrcode").qrcode({
    render: "canvas", // 或"table"
    text: "jQuery生成的二维码",
    width: 150,
    height: 150
});

使用原生Canvas API实现

不依赖任何库,使用原生Canvas API生成二维码:

js实现二维码生成

function generateQRCode(text, size) {
    const canvas = document.createElement("canvas");
    const ctx = canvas.getContext("2d");
    canvas.width = size;
    canvas.height = size;

    // 这里应实现二维码生成算法
    // 简化的示例只是绘制一个方块
    ctx.fillStyle = "#000000";
    ctx.fillRect(10, 10, size-20, size-20);

    return canvas;
}

document.body.appendChild(generateQRCode("原生实现", 100));

注意事项

二维码生成质量取决于算法实现。对于生产环境,建议使用成熟的库如QRCode.js,它实现了完整的QR码规范。

动态更新二维码内容:

const qrcode = new QRCode(document.getElementById("qrcode"), {
    text: "初始内容",
    width: 128,
    height: 128
});

// 更新内容
document.getElementById("updateBtn").addEventListener("click", function() {
    qrcode.makeCode(document.getElementById("newText").value);
});

错误修正级别:

  • QRCode.CorrectLevel.L (7%)
  • QRCode.CorrectLevel.M (15%)
  • QRCode.CorrectLevel.Q (25%)
  • QRCode.CorrectLevel.H (30%)

选择更高级别的错误修正可以增加二维码的容错能力,但会减少可存储的数据量。

标签: 二维码js
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

vue实现打印二维码

vue实现打印二维码

安装依赖 需要安装 qrcode 和 html2canvas 库来生成二维码并转换为可打印的图像。 npm install qrcode html2canvas 生成二维码 使用 qrcode…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…