javascript - 未捕获的类型错误:无法设置未定义的属性“回调”
问题描述
所以我最近在https://codesandbox.io/s/qr-code-scanner-ilrm9?file=/index.html找到了一个关于如何读取二维码的简洁示例
当我尝试进行设置时,我似乎总是在控制台中收到错误消息“未捕获的类型错误:无法设置未定义的属性‘回调’”,我不完全确定为什么,特别是上面的示例有效。
这是我到目前为止所拥有的https://jsfiddle.net/snt95wh8/
const qrcode = window.qrcode;
const video = document.createElement("video");
const canvasElement = document.getElementById("qr-canvas");
const canvas = canvasElement.getContext("2d");
const qrResult = document.getElementById("qr-result");
const outputData = document.getElementById("outputData");
const btnScanQR = document.getElementById("btn-scan-qr");
let scanning = false;
qrcode.callback = res => {
if (res) {
outputData.innerText = res;
scanning = false;
video.srcObject.getTracks().forEach(track => {
track.stop();
});
qrResult.hidden = false;
canvasElement.hidden = true;
btnScanQR.hidden = false;
}
};
btnScanQR.onclick = () => {
navigator.mediaDevices
.getUserMedia({ video: { facingMode: "environment" } })
.then(function(stream) {
scanning = true;
qrResult.hidden = true;
btnScanQR.hidden = true;
canvasElement.hidden = false;
video.setAttribute("playsinline", true); // required to tell iOS safari we don't want fullscreen
video.srcObject = stream;
video.play();
tick();
scan();
});
};
function tick() {
canvasElement.height = video.videoHeight;
canvasElement.width = video.videoWidth;
canvas.drawImage(video, 0, 0, canvasElement.width, canvasElement.height);
scanning && requestAnimationFrame(tick);
}
function scan() {
try {
qrcode.decode();
} catch (e) {
setTimeout(scan, 300);
}
}
任何建议将不胜感激,谢谢。
解决方案
您忘记链接二维码库
有时小提琴不允许相机许可。最好在您的本地主机上尝试
<script src="https://rawgit.com/sitepoint-editors/jsqrcode/master/src/qr_packed.js"></script>
推荐阅读
- angular - 多个 Angular 9 路由解析器创建错误“错误:未捕获(承诺中):EmptyError:序列中没有元素”
- c++ - 整数中的反转位:stoi 异常
- django - 当与客户端没有连接时,有没有办法持续更新服务器端数据?
- c# - 如何在 Net core 3.1 上路由所有子域
- node.js - 构建时从反应地铁捆绑器中排除特定包
- elasticsearch - 忽略logstash剖析中字段周围的内容
- javascript - 如何基于枚举数组的组合验证 JSON Schema?
- flutter - 如何防止 Row 占用所有可用宽度?
- c - 在静态链接的 DLL 中创建向后兼容的 Drop
- python - Tkinter 自定义条目小部件异常