二维码到 dataURL

Rav*_*rti 2 javascript qr-code

我正在尝试使用davidshimjs/qrcodejs和下面的代码生成 QR 码。但是,当我尝试生成 DataURL 时,出现以下错误:

类型错误: document.getElementById(...).toDataURL 不是函数

下面是我的代码:

HTML:

<div id="qrcode"></div>
Run Code Online (Sandbox Code Playgroud)

JS:

var qrcode = new QRCode("qrcode", {
    text: QRId,
    width: 200,
    height: 200,
    colorDark : "#000000",
    colorLight : "#ffffff",
    correctLevel : QRCode.CorrectLevel.H
});
var dataURL = document.getElementById('qrcode').toDataURL();
Run Code Online (Sandbox Code Playgroud)

Kev*_*zer 6

那是因为toDataURL仅适用于<canvas>元素。

canvas.toDataURL(type, encoderOptions);

请参阅:https ://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL

更新

以下是获取数据 URL 的方法...

var QRId = "123456789"
var qrcode = new QRCode("qrcode", {
    text: QRId,
    width: 200,
    height: 200,
    colorDark : "#000000",
    colorLight : "#ffffff",
    correctLevel : QRCode.CorrectLevel.H
});

// get the qr div, then find the canvas element inside it
var canvas = document.getElementById('qrcode').querySelector('canvas');

var dataURL = canvas.toDataURL();

document.getElementById('result').innerHTML = dataURL;
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/master/qrcode.js"></script>

<div id="qrcode"></div>

<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)