展示
方便大家复制的示意图:
代码
CSS代码:
.area {
height: 200px;
border: 1px dashed skyblue;
background-color: #fff;
flex: 1;
display: grid;
place-items: center;
}
.area:empty::before {
content: '或粘贴图片到这里';
color: gray;
}
.area:focus {
border-style: solid;
}
.area img {
max-height: 160px;
max-width: 90%;
object-fit: contain;
}
HTML代码:
<div id="area" class="area" tabindex="-1"></div>
<p align="center">
<button id="button" class="button">识别</button>
</p>
<p id="result" align="center"></p>
JS代码:
button.addEventListener('click', function () {
if ('BarcodeDetector' in window) {
// 创建检测器
const barcodeDetector = new BarcodeDetector({
formats: ['qr_code']
});
const eleImg = document.querySelector('#area img');
if (eleImg) {
barcodeDetector.detect(eleImg).then((barcodes) => {
barcodes.forEach((barcode) => {
result.innerHTML = `<span class="success">解析成功,结果是:</span>${barcode.rawValue}`;
});
}).catch((err) => {
result.innerHTML = `<span class="error">解析出错:${err}</span>`;
});
} else {
result.innerHTML = `<span class="error">请先粘贴二维码图片</span>`;
}
} else {
result.innerHTML = `<span class="error">当前浏览器不支持二维码识别</span>`;
}
});