You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
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();
|