/CVox/res/raw/halfscan.js

http://eyes-free.googlecode.com/ · JavaScript · 50 lines · 39 code · 5 blank · 6 comment · 7 complexity · a87049d63255b1067a8d05dc2cc48de8 MD5 · raw file

  1. // ==UserScript==
  2. // @name Scan barcode into Half.com
  3. // @description Add button to Half.com search box to scan barcode
  4. // @author Jeffrey Sharkey
  5. // @include http://*m.half.com*
  6. // ==/UserScript==
  7. function insertAfter(newElement,targetElement) {
  8. var parent = targetElement.parentNode;
  9. if(parent.lastchild == targetElement) {
  10. parent.appendChild(newElement);
  11. } else {
  12. parent.insertBefore(newElement, targetElement.nextSibling);
  13. }
  14. }
  15. function generate(item) {
  16. var helper = document.createElement('input');
  17. helper.type = 'button';
  18. helper.value = 'Scan barcode...';
  19. helper.style.background = '#cfc';
  20. helper.style.color = '#484';
  21. helper.style.border = '1px solid #484';
  22. helper.style.padding = '5px';
  23. helper.style.marginLeft = '10px';
  24. helper.addEventListener('click', function(event) {
  25. var result = window.intentHelper.startActivityForResult(JSON.stringify({
  26. action:'com.google.zxing.client.android.SCAN',
  27. category:['CATEGORY_DEFAULT']
  28. }));
  29. result = JSON.parse(result);
  30. item.value = result['extras']['SCAN_RESULT'];
  31. }, false);
  32. return helper;
  33. }
  34. var append = [];
  35. var items = document.body.getElementsByTagName('input');
  36. for(i in items) {
  37. var item = items[i];
  38. if(item.name == 'query')
  39. append.push([item,generate(item)]);
  40. }
  41. for(i in append) {
  42. var target = append[i][0];
  43. var generated = append[i][1];
  44. insertAfter(generated, target);
  45. }