It is licensed under the Apache 2.0 license.
It is around 3.3kb minified and gzipped and 9.9kb minified, has no external dependencies, and has been tested in the following browsers:
- Internet Explorer 6+ (test suite works in IE9+)
It has support for
keyup events on specific keys, keyboard combinations, or key sequences.
This project was forked from ccampbell/mousetrap.
It was forked because pull–requests were not being reviewed.
This fork's author intends to review pull–requests.
Main changes are
- Refactored as CommonJS
- Doesn't automatically listen on the
document. Instead, it is now a constructor and the element on which to listen must be provided on instantiation. Multiple instances possible.
Get it on your page:
var Combokeys;Combokeys = ;
Instantiate it for the entire page:
var combokeys = documentdocumentElement;
Or, instantiate it for one or more specific elements:
var firstCombokeys = document;var secondCombokeys = document;
Add some combos!
// single keyscombokeys;firstCombokeys;secondCombokeys;// combinationscombokeys;// map multiple combinations to the same callbackcombokeys;// gmail style sequencescombokeys;combokeys;// any character (actual character inserted—triggered by the `keypress` event)combokeys;// konami code!combokeys;
When you’re done with it, detach:
combokeys// and it will not listen on the element any more
You can also bind the plus and minus keys conveniently:
There are a number of other similar libraries out there so what makes this one different?
- CommonJS, NPM.
- You can listen on multiple, specified elements simultaneously.
- You are not limited to
keydownevents (You can specify
keyupor let Combokeys choose for you).
- You can bind key events directly to special keys such as
*without having to specify
shift+8which are not consistent across all keyboards
- It works with international keyboard layouts
- You can bind Gmail like key sequences in addition to regular keys and key combinations
- You can programatically trigger key events with the
- It works with the numeric keypad on your keyboard
- The code is well documented/commented
You can also build an AMD-compatible version by running
npm run build. This creates a universally compatible
dist/combokeys.js which, you can use via RequireJS, or include directly in a
<script> tag with the global variable
The most complete documentation is currently at Mousetrap, the original project's website. At the time of this writing, the only differences are in how you get it in your page (It is now a CommonJS module which does not define a global for itself) and that you must instantiate it before binding keys.
The public API consists of
There are some plugins. See their individual readme files.
Allows you to make multiple bindings in a single
Allows you to set global bindings that work even inside of input fields.
Allows you to temporarily prevent Combokeys events from firing.
Allows you to capture a keyboard shortcut or sequence defined by a user.