当前位置:首页 > 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是一个方便的插件。

安装:

<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生成二维码:

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);
});

错误修正级别:

js实现二维码生成

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

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

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

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…