Javascript 如何以不同的方式传递二维码扫描的信息<;输入>;?

Javascript 如何以不同的方式传递二维码扫描的信息<;输入>;?,javascript,html,qr-code,Javascript,Html,Qr Code,我有一个二维码扫描仪。它可以完美地读取代码。现在我想将扫描的信息传递到不同的输入字段。例如:我有一个二维码,扫描时会显示姓名、姓氏、号码等。我想在不同的输入字段中显示我从二维码扫描的不同数据,然后在提交时保存。我想知道有没有办法做到这一点?提前感谢您抽出时间 <script type="text/javascript" src="js/jsQRreader.js"></script> <div id="loadingMessage"> Unable to a

我有一个二维码扫描仪。它可以完美地读取代码。现在我想将扫描的信息传递到不同的输入字段。例如:我有一个二维码,扫描时会显示姓名、姓氏、号码等。我想在不同的输入字段中显示我从二维码扫描的不同数据,然后在提交时保存。我想知道有没有办法做到这一点?提前感谢您抽出时间

<script type="text/javascript" src="js/jsQRreader.js"></script>

<div id="loadingMessage"> Unable to access video stream (please make sure you have a webcam enabled)</div>
<canvas id="canvas" hidden></canvas>
<div id="output" hidden>
  <div id="outputMessage">No QR code detected.</div>
    <textarea type="text" id="outputData" name="outputData" value="" style="width: 200px;margin-left:25px;"> 
    </textarea>
    <input name="Submit" type="submit" value="Submit" style="margin-bottom: 15px;">

        </div>


<script>
            var video = document.createElement("video");
            var canvasElement = document.getElementById("canvas");
            var canvas = canvasElement.getContext("2d");
            var loadingMessage = document.getElementById("loadingMessage");
            var outputContainer = document.getElementById("output");
            var outputMessage = document.getElementById("outputMessage");
            var outputData = document.getElementById("outputData");

            function drawLine(begin, end, color) {
              canvas.beginPath();
              canvas.moveTo(begin.x, begin.y);
              canvas.lineTo(end.x, end.y);
              canvas.lineWidth = 4;
              canvas.strokeStyle = color;
              canvas.stroke();
            }

            // Use facingMode: environment to attemt to get the front camera on phones
            navigator.mediaDevices.getUserMedia({ video: { facingMode: "environment" } }).then(function(stream) {
              video.srcObject = stream;
              video.setAttribute("playsinline", true); // required to tell iOS safari we don't want fullscreen
              video.play();
              requestAnimationFrame(tick);
            });

            function tick() {
              loadingMessage.innerText = "Loading video..."
              if (video.readyState === video.HAVE_ENOUGH_DATA) {
                loadingMessage.hidden = true;
                canvasElement.hidden = false;
                outputContainer.hidden = false;

                canvasElement.height = video.videoHeight;
                canvasElement.width = video.videoWidth;
                canvas.drawImage(video, 0, 0, canvasElement.width, canvasElement.height);
                var imageData = canvas.getImageData(0, 0, canvasElement.width, canvasElement.height);
                var code = jsQR(imageData.data, imageData.width, imageData.height, {
                  inversionAttempts: "dontInvert",
                });
                if (code) {
                  drawLine(code.location.topLeftCorner, code.location.topRightCorner, "#FF3B58");
                  drawLine(code.location.topRightCorner, code.location.bottomRightCorner, "#FF3B58");
                  drawLine(code.location.bottomRightCorner, code.location.bottomLeftCorner, "#FF3B58");
                  drawLine(code.location.bottomLeftCorner, code.location.topLeftCorner, "#FF3B58");
                  outputMessage.hidden = false;
                  outputData.parentElement.hidden = false;
                  outputData.value = code.data;
     } 
    }
   requestAnimationFrame(tick);
  }
</script>

无法访问视频流(请确保已启用网络摄像头)
未检测到二维码。
var video=document.createElement(“视频”);
var canvasElement=document.getElementById(“canvas”);
var canvas=canvasElement.getContext(“2d”);
var loadingMessage=document.getElementById(“loadingMessage”);
var outputContainer=document.getElementById(“输出”);
var outputMessage=document.getElementById(“outputMessage”);
var outputData=document.getElementById(“outputData”);
功能抽绳(开始、结束、颜色){
canvas.beginPath();
canvas.moveTo(begin.x,begin.y);
canvas.lineTo(end.x,end.y);
canvas.lineWidth=4;
canvas.strokeStyle=颜色;
canvas.stroke();
}
//使用facingMode:environment尝试在手机上安装前置摄像头
navigator.mediaDevices.getUserMedia({video:{facingMode:“环境”}})。然后(函数(流){
video.srcObject=流;
video.setAttribute(“playsinline”,true);//告诉iOS safari我们不想要全屏
video.play();
requestAnimationFrame(勾号);
});
函数tick(){
loadingMessage.innerText=“正在加载视频…”
如果(video.readyState==video.HAVE\u足够的\u数据){
loadingMessage.hidden=true;
canvasElement.hidden=false;
outputContainer.hidden=false;
canvasElement.height=video.videoHeight;
canvasElement.width=video.videoWidth;
drawImage(视频,0,0,canvasElement.width,canvasElement.height);
var imageData=canvas.getImageData(0,0,canvasElement.width,canvasElement.height);
var代码=jsQR(imageData.data、imageData.width、imageData.height、{
反向尝试:“dontInvert”,
});
if(代码){
抽绳(code.location.topLeftCorner,code.location.topRightCorner,“#FF3B58”);
抽绳(code.location.topRightCorner,code.location.bottomRightCorner,“#FF3B58”);
抽绳(code.location.bottomRightCorner,code.location.bottomLeftCorner,“#FF3B58”);
抽绳(code.location.bottomLeftCorner,code.location.topLeftCorner,“#FF3B58”);
outputMessage.hidden=false;
outputData.parentElement.hidden=false;
outputData.value=code.data;
} 
}
requestAnimationFrame(勾号);
}

这将有助于了解数据的结构。
不同的输入字段
确切的输入是什么?@MoshFeu我想通过扫描的二维码:姓名在,姓氏在。好的。你期望
code.data
会是什么?我的意思是QR的价值是什么?url?物体?二维码包含全名、地址和数字。它只是一个文本。我想要的结果是一个带全名的,另一个带地址的,还有一个带号码的