Универсальный сканер кодов
Универсальный сканер кодов
Сканируйте QR-коды через камеру телефона
QR-код
Штрих-код
▶️
Включить камеру
Сканировать
Автосканирование
⏹️
Выключить
Загрузка...
Результаты сканирования
Результаты сканирования появятся здесь
История сканирований
История сканирований будет отображаться здесь
️
Очистить историю
${result.content}
Копировать
Найти в интернете
`; // Добавляем обработчики для кнопок const copyBtn = resultElement.querySelector('.copy-btn'); const searchBtn = resultElement.querySelector('.search-btn'); copyBtn.addEventListener('click', function() { navigator.clipboard.writeText(result.content).then(() => { statusMessage.textContent = 'Текст скопирован в буфер обмена'; statusMessage.className = 'status-message status-success'; }).catch(err => { // Fallback для браузеров без поддержки clipboard API const textArea = document.createElement('textarea'); textArea.value = result.content; document.body.appendChild(textArea); textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); statusMessage.textContent = 'Текст скопирован в буфер обмена'; statusMessage.className = 'status-message status-success'; }); }); searchBtn.addEventListener('click', function() { window.open(`https://www.google.com/search?q=${encodeURIComponent(result.content)}`, '_blank'); }); // Вставляем новый результат в начало resultsContainer.insertBefore(resultElement, resultsContainer.firstChild); } // Обновление отображения истории function updateHistoryDisplay() { // Очищаем контейнер historyContainer.innerHTML = ''; if (scanHistory.length === 0) { historyContainer.innerHTML = '
История сканирований будет отображаться здесь
'; return; } // Добавляем элементы истории scanHistory.forEach(item => { const historyItem = document.createElement('div'); historyItem.className = 'result-item'; historyItem.innerHTML = `
${item.type}
${item.timestamp}
${item.content}
`; historyContainer.appendChild(historyItem); }); } // Вспомогательная функция для получения названия типа кода function getCodeTypeName(type) { const names = { 'qr': 'QR-код', 'barcode': 'Штрих-код' }; return names[type] || type; } // Обработка изменения ориентации экрана window.addEventListener('orientationchange', function() { // Небольшая задержка для стабилизации изменения размера setTimeout(() => { if (stream && video.videoWidth && video.videoHeight) { canvas.width = video.videoWidth; canvas.height = video.videoHeight; } }, 300); }); });