返回前如何修改此qr函数输出

时间:2019-04-04 14:10:48

标签: javascript qr-code

我尝试使用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

2 个答案:

答案 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:(