'; html += '
'; (function(){ var __b = document.createElement('button'); __b.type = 'button'; __b.className = 'copy-btn'; __b.style.cssText = 'background:#6C8A5E;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;'; __b.dataset.copy = JSON.stringify(('' + code.data.replace(/'/g, "\\'") + '') || ''); __b.textContent = '复制内容'; __b.addEventListener('click', function(){ var t='' + code.data.replace(/'/g, "\\'") + ''; navigator.clipboard.writeText(String(t==null?'':t)).then(function(){ __b.textContent = '已复制'; setTimeout(function(){ __b.textContent = '复制内容'; }, 1500); }).catch(function(){ __b.textContent = '复制失败'; }); }); html += __b.outerHTML; })(); html += '
'; resultContent.innerHTML = html; resultMeta.textContent = '已解析 (' + code.data.length + ' 字符)'; resultArea.classList.add('show'); } else { showError('未识别到二维码, 请尝试更清晰的图片'); } } file.addEventListener('change', function(e) { clearError(); clearResult(); var f = e.target.files[0]; if (!f) return; var img = new Image(); img.onload = function() { parseImg(img); }; img.onerror = function() { showError('图片加载失败'); }; img.src = URL.createObjectURL(f); }); paste.addEventListener('click', function() { file.click(); }); paste.addEventListener('paste', function(e) { var items = e.clipboardData.items; for (var i = 0; i < items.length; i++) { if (items[i].type.indexOf('image') === 0) { var blob = items[i].getAsFile(); var img = new Image(); img.onload = function() { parseImg(img); }; img.onerror = function() { showError('图片加载失败'); }; img.src = URL.createObjectURL(blob); return; } } showError('剪贴板中未找到图片'); }); document.getElementById('btn-clear').addEventListener('click', function() { file.value = ''; clearError(); clearResult(); }); })();