Requires

Provides

Keypress.js

A wrapper to cross-browser keypress keyboard event implementation.

License:
MIT-style license.
  1. 21
  2. 22
  3. 23
  4. 24
  5. 25
  6. 26
  7. 27
  8. 28
  9. 29
  10. 30
  11. 31
  12. 32
  13. 33
  14. 34
  15. 35
  16. 36
  17. 37
  18. 38
  19. 39
  20. 40
  21. 41
  22. 42
  23. 43
  24. 44
  25. 45
  26. 46
  27. 47
  28. 48
  29. 49
  30. 50
  31. 51
  32. 52
  33. 53
  34. 54
  35. 55
  36. 56
  37. 57
  38. 58
  39. 59
  40. 60
  41. 61
  42. 62
  43. 63
  44. 64
  45. 65
  46. 66
(function() { Element.Events.keypress = { base: 'keydown', onAdd: function(fn) { if (!this.retrieve('keypress:listeners')) { var events = { keypress: function(e) { var event = new Event(e)//$extend({}, e); event.repeat = (event.code == this.retrieve('keypress:code')); event.code = this.retrieve('keypress:code'); event.key = this.retrieve('keypress:key'); event.type = 'keypress'; event.from = 'keypress'; if (event.repeat) this.fireEvent('keypress', event) }.bind(this), keyup: function() { this.eliminate('keypress:code'); this.eliminate('keypress:key'); } } this.store('keypress:listeners', events); for (var type in events) this.addListener(type, events[type]); } }, onRemove: function() { var events = this.retrieve('keypress:listeners'); for (var type in events) this.removeListener(type, events[type]); this.eliminate('keypress:listeners'); }, condition: function(event) { var key = Event.Keys.keyOf(event.code) || event.key; event.repeat = (key == this.retrieve('keypress:key')); this.store('keypress:code', event.code); this.store('keypress:key', key); if (!event.firesKeyPressEvent(event.code)) { event.type = 'keypress'; event.from = 'keypress'; event.key = key; return true; } } }; })();