This modules handles low-level keyboard events and normalize them across browsers.
Methods
delegateKeyboardEvents(textarea: Element, handlers: Object)privatestatic
Setup to capture the keyboard events from a TextArea and redispatch them to
handlers.
In general, commands (arrows, delete, etc..) should be handled
in the keystroke() handler while text input should be handled in
typedtext().
textarea
Element
A TextArea element that will capture the keyboard
events. While this element will usually be a TextArea, it could be any
element that is focusable and can receive keyboard events.
handlers
Object
handlers.container
Element
optional
handlers.keystroke
function
invoked on a key down event, including for special keys such as ESC, arrow keys, tab, etc... and their variants with modifiers.
handlers.typedtext
function
invoked on a keypress or other events
when a key corresponding to a character has been pressed. This include a-z,
0-9, {}, ^_(), etc...
This does not include arrow keys, tab, etc... but does include 'space'
When a 'character' key is pressed, both keystroke() and typedtext() will
be invoked. When a control/function key is pressed, only keystroke() will
be invoked. In some cases, for example when using input methods or entering
emoji, only typedtext() will be invoked.
handlers.paste(text)
function
Invoked in response to a paste command. Not all browsers support this (Chrome doesn't), so typedtext() will be invoked instead.
handlers.cut
function
handlers.copy
function
keyboardEventToString(evt: Event)static
Create a normalized string representation of the key combo, i.e., key code and modifier keys. For example:
Ctrl-Shift-Alt-KeyFAlt-SpaceShift-Digit6
evt
Event
-
Source
- To Do:
-
- See https://github.com/madrobby/keymaster/blob/master/keymaster.js
- Doesn't work very well for command-
- Returns "Alt-Alt" when only the Alt key is pressed
- See https://github.com/madrobby/keymaster/blob/master/keymaster.js
- Doesn't work very well for command-
