keyboard-js
A little library for keyboard binding.
Now, it just supports chrome.
If you want to support more browsers or nodejs platform, just fork it.
Have fun, XD.
Usage
Full list of key values
Try it
Now, you can try it here.
(source)
And, you can find which key(key combo will print on the console.) do you press at that page,
when you find your code didn't run.
Quickly start
var Keyboard = require('keyboard-js').Keyboard
var keyboard = new Keyboard()
keyboard.start()
keyboard.register('uk', function (event) {
console.log('test uk successfully.')
}, ["Shift", "E"], ["Control", "e"])
PLEASE DO NOT USE ALERT OR CONFIRM FOR YOUR FAMILY!
Dialog boxes are modal windows - they prevent the user from accessing the rest of the program's interface until the dialog box is closed
- Window.alert()
- Open this and then press Ctrl + F to find
This key combo keeps activating even though I'm not pressing the keys
- If you really want to use, please don't forget to call
event.clearKeys()
in the callback
OMG! Please forgive me.
Attention
Please pay more attention to the key combo.
You should avoid the key conflict.
For example, if you registe the Shortcut Key: Shift + B,
you will be confused when you hit Shift + B in the textarea.
So, be careful.
However, you can use API::Keyboard.end()
to end when the textarea is focused
and use API::Keyboard.start()
to restart when it blurs.
Also, you can discard the Shortcut Key: Shift + B.
API
Constructor Options
{
DEBUG: [boolen],
element: [DOM Element],
}
Exposed Interface:
Keyboard.start(): start to listen the keypress event
Keyboard.end(): end to listen keypress event and clean some resource
Keyboard.register(name:String, callback:Function, [key1:String, key2:String,...], ...): registe the keyboard binding
Keyboard.unregister(name:String): remove the register by name
Keyboard.getStatistic(): get the key pressing information
And the callback defination:
function callback (event) {
}
Annexation
A keyboard layout Library (keyboard-layout.js)
Samples
You can find here
Bug
If you find bugs or have any questions, you can submit them to the github issues.
LICENSE
MIT