ad bind

Bind AD to <- ->

  1. // ==UserScript==
  2. // @name ad bind
  3. // @namespace http://rainsims.com/
  4. // @version 0.3
  5. // @description Bind AD to <- ->
  6. // @author Rain Sims
  7. // @match http*://*/*
  8. // @exclude http*://*pr0gramm.com/*
  9. // @exclude http*://mail.google.com/*
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. var keyMap = {
  16. 65: {
  17. "keyCode" : 37,
  18. "which" : 37,
  19. "charCode" : 0
  20. },
  21. 68: {
  22. "keyCode" : 39,
  23. "which" : 39,
  24. "charCode" : 0
  25. }
  26. };
  27.  
  28. function getMapping(key){
  29. return (key in keyMap) ? keyMap[key] : undefined;
  30. }
  31.  
  32. function addMapping(eventObj, mapping){
  33. eventObj.keyCode = mapping.keyCode;
  34. eventObj.which = mapping.which;
  35. eventObj.charCode = mapping.charCode;
  36. }
  37.  
  38. function fireEvent(evt) {
  39. var mapping = getMapping(evt.keyCode);
  40.  
  41. if(mapping){
  42. var eventObj;
  43.  
  44. if(document.createEventObject) {
  45. eventObj = document.createEventObject();
  46. addMapping(eventObj, mapping);
  47. document.body.fireEvent("on" + evt.type, eventObj);
  48. } else if(document.createEvent) {
  49. eventObj = document.createEvent("Events");
  50. eventObj.initEvent(evt.type, true, true);
  51. addMapping(eventObj, mapping);
  52. document.body.dispatchEvent(eventObj);
  53. }
  54. }
  55.  
  56. }
  57.  
  58. function addEvent(element, eventName, callback) {
  59. if (element.addEventListener) {
  60. element.addEventListener(eventName, callback, false);
  61. } else if (element.attachEvent) {
  62. element.attachEvent("on" + eventName, callback);
  63. }
  64. }
  65.  
  66. addEvent(document, "keydown", fireEvent);
  67. addEvent(document, "keyup", fireEvent);
  68. addEvent(document, "keypress", fireEvent);
  69. })();