我正在尝试使用davidshimjs/qrcodejs生成QR代码和下面的代码。但是,当我试图生成DataURL时,它会产生以下错误:
TypeError: document.getElementById(.).toDataURL不是函数
下面是我的代码:
HTML :
<div id="qrcode"></div>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();发布于 2016-08-11 15:35:32
这是因为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;<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/master/qrcode.js"></script>
<div id="qrcode"></div>
<div id="result"></div>
发布于 2022-06-21 10:11:31
简单解
将库包含在<head>标记中
<script type="text/javascript" src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>一个简单的函数,它将文本转换为其等效的QR图像数据URL。
function textToQrImageDataUrl(txt) {
var qrDiv = document.createElement("div");
// This will put a <canvas> inside the given <div> element, and draw
// the QR image on it
new QRCode(qrDiv, txt);
return qrDiv.querySelector('canvas').toDataURL();
}用HTML测试它
<img id="qrImg" src="#">
<script type="text/javascript">
// This will use the same javascript function that I have defined above
var imgDataUrl = textToQrImageDataUrl("abcd");
document.getElementById('qrImg').setAttribute("src", imgDataUrl);
</script>https://stackoverflow.com/questions/38900628
复制相似问题