# Mousetrap [![CDNJS](https://img.shields.io/cdnjs/v/mousetrap.svg)](https://cdnjs.com/libraries/mousetrap) Mousetrap is a simple library for handling keyboard shortcuts in Javascript. It is licensed under the Apache 2.0 license. It is around **2kb** minified and gzipped and **4.5kb** minified, has no external dependencies, and has been tested in the following browsers: - Internet Explorer 6+ - Safari - Firefox - Chrome It has support for `keypress`, `keydown`, and `keyup` events on specific keys, keyboard combinations, or key sequences. ## Getting started 1. Include mousetrap on your page before the closing `` tag ```html ``` or install `mousetrap` from `npm` and require it ```js var Mousetrap = require('mousetrap'); ``` 2. Add some keyboard events to listen for ```html ``` ## Why Mousetrap? There are a number of other similar libraries out there so what makes this one different? - There are no external dependencies, no framework is required - You are not limited to `keydown` events (You can specify `keypress`, `keydown`, or `keyup` or let Mousetrap choose for you). - You can bind key events directly to special keys such as `?` or `*` without having to specify `shift+/` or `shift+8` which 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 `trigger()` method - It works with the numeric keypad on your keyboard - The code is well documented/commented ## Tests Unit tests are run with mocha. ### Running in browser [View it online](http://rawgit.com/ccampbell/mousetrap/master/tests/mousetrap.html) to check your browser compatibility. You may also download the repo and open `tests/mousetrap.html` in your browser. ### Running with Node.js 1. Install development dependencies ```sh cd /path/to/repo npm install ``` 3. Run tests ```sh npm test ``` ## Documentation Full documentation can be found at https://craig.is/killing/mice