From a18fbcd501a83a5db68a9511120bea75e321a00f Mon Sep 17 00:00:00 2001
From: Christoph Oberhofer Click the button next to the input-field
+ to select a file or snap a picture This example demonstrates the following features:
+ Scan barcode to input-field
+
+
+
+
+var Quagga = window.Quagga;
+var App = {
+ _scanner: null,
+ init: function() {
+ this.attachListeners();
+ },
+ decode: function(src) {
+ Quagga
+ .decoder({readers: ['ean_reader']})
+ .locator({patchSize: 'medium'})
+ .fromImage(src, {size: 800})
+ .toPromise()
+ .then(function(result) {
+ document.querySelector('input.isbn').value = result.codeResult.code;
+ })
+ .catch(function() {
+ document.querySelector('input.isbn').value = "Not Found";
+ })
+ .then(function() {
+ this.attachListeners();
+ }.bind(this));
+ },
+ attachListeners: function() {
+ var self = this,
+ button = document.querySelector('.input-field input + .button.scan'),
+ fileInput = document.querySelector('.input-field input[type=file]');
+
+ button.addEventListener("click", function onClick(e) {
+ e.preventDefault();
+ button.removeEventListener("click", onClick);
+ document.querySelector('.input-field input[type=file]').click();
+ });
+
+ fileInput.addEventListener("change", function onChange(e) {
+ e.preventDefault();
+ fileInput.removeEventListener("change", onChange);
+ if (e.target.files && e.target.files.length) {
+ self.decode(URL.createObjectURL(e.target.files[0]));
+ }
+ });
+ }
+};
+App.init();
+
+
+
+
+<form>
+ <div class="input-field">
+ <label for="isbn_input">EAN:</label>
+ <input id="isbn_input" class="isbn" type="text" />
+ <button type="button" class="icon-barcode button scan"> </button>
+ <input type="file" id="file" capture/>
+ </div>
+</form>
+
+
+