index.html 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>QR Test</title>
  5. <style>
  6. #preview img {
  7. border: 1px solid black;
  8. float: left;
  9. margin: 0 1em 1em 0;
  10. width: 10em;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <h1>Simple browser demo using the FileReader API</h1>
  16. <h2>Upload file</h2>
  17. <input type="file" id="upload">
  18. <h2>Result</h2>
  19. <div id="preview"></div>
  20. <script type="text/javascript" src="../../dist/index.js"></script>
  21. <script type="text/javascript">
  22. (function() {
  23. 'use strict';
  24. var upload = document.getElementById('upload');
  25. var preview = document.getElementById('preview');
  26. var qr = new QrCode();
  27. qr.callback = function(err, result) {
  28. var span = document.querySelector('span') || document.createElement('span');
  29. if(result){
  30. span.textContent = result;
  31. }
  32. else{
  33. span.textContent = 'Error! See error message in console!';
  34. console.error(err);
  35. }
  36. preview.appendChild(span);
  37. }
  38. upload.addEventListener('change', function() {
  39. for (var i = 0; i < this.files.length; i++) {
  40. var file = this.files[i];
  41. var imageType = /^image\//;
  42. if (!imageType.test(file.type)) {
  43. throw new Error('File type not valid');
  44. }
  45. // Read file
  46. var reader = new FileReader();
  47. reader.addEventListener('load', function() {
  48. // Show as preview image
  49. var img = document.querySelector('img') || document.createElement('img');
  50. img.src = this.result;
  51. preview.appendChild(img);
  52. // Analyse code
  53. qr.decode(this.result);
  54. }.bind(reader), false);
  55. reader.readAsDataURL(file);
  56. }
  57. }, false);
  58. })();
  59. </script>
  60. </body>
  61. </html>