scanner.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const scanner={
  2. /**
  3. * 监听document的扫描枪活动,扫描后调用doFunc执行,doFunc(str)
  4. * str是扫到的内容,在doFunc内执行
  5. * @param doFunc
  6. */
  7. monitorScan:function(doFunc){
  8. let tightInputInterval=50;
  9. let leastCodeLength=3;
  10. let lastPressedAt=0;
  11. let scannedStr="";
  12. $(document).on('keyup',function(e){
  13. let nowAtMilli=(new Date()).getTime();
  14. let inputInterval=nowAtMilli-lastPressedAt;
  15. if (inputInterval<tightInputInterval){
  16. if(e.key!=='Enter'){
  17. scannedStr+=e.key;
  18. }else{
  19. if(scannedStr.length>=leastCodeLength){
  20. doFunc(scannedStr);
  21. }
  22. scannedStr='';
  23. }
  24. }else{
  25. if(e.key!=='Enter'){
  26. scannedStr=e.key;
  27. }else{
  28. scannedStr='';
  29. }
  30. }
  31. lastPressedAt=nowAtMilli;
  32. })
  33. },
  34. monitorFocusingTarget:function(doFunc){
  35. $('input').on('focus',function(e){
  36. doFunc(e.target);
  37. })
  38. },
  39. };
  40. module.exports=scanner;