我尝试使用this code作为基础,并希望在扫描qr代码并将其放入文本框中之前修改输出。
假设我有一个包含“ 12345”的qr,我想对其进行扫描,然后仅将整个内容的“ 123”作为文本框中的输出即可。但是我无法管理在js部分中放置变量的位置,获取putput,对其进行修改,然后将其返回给输入字段。
我是js的新秀,所以这可能是一个很愚蠢的问题。
就像js部分的最后一行一样:
var test = reader.readAsDataURL(node.files[0]);
var output = test.substr(0,3);
return output;
这又是完整的code on w3schools.com
答案 0 :(得分:0)
您正在修改错误的变量!
function openQRCamera(node) {
var reader = new FileReader();
reader.onload = function() {
node.value = "";
qrcode.callback = function(res) {
if(res instanceof Error) {
alert("No QR code found. Please make sure the QR code is within the camera's frame and try again.");
} else {
//THIS LINE ARE UPDATING THE INPUT
//YOU CAN CHANGE THE "res" var
res = "RESULT: "+res
node.parentNode.previousElementSibling.value = res;
}
};
qrcode.decode(reader.result);
};
reader.readAsDataURL(node.files[0]);
}
答案 1 :(得分:0)
对我来说似乎是一个解决方案,但我不知道该如何运行。
我将您的函数添加到js部分:
function openQRCamera(node) {
var reader = new FileReader();
reader.onload = function() {
node.value = "";
qrcode.callback = function(res) {
if(res instanceof Error) {
alert("No QR code found. Please make sure the QR code is within the camera's frame and try again.");
} else {
node.parentNode.previousElementSibling.value = res;
}
};
qrcode.decode(reader.result);
};
reader.readAsDataURL(node.files[0]);
alert (getTruncatedQRCode(reader, node, "3"));
}
function getTruncatedQRCode(reader, node, index) {
if (!(reader && node && Array.isArray(node.files))) return;
const code = reader.readAsDataURL(node.files[0]);
if (code) return code.substr(0, index);
}
但是警报仅显示undefined
:(