I have read jQuery Event Keypress: Which key was pressed? and How can i check if key is pressed during click event with jquery?
However my question is if you can get the same key event for all browsers? Currently I know that Firefox gives the command button (Mac) the code 224 while Chrome and Safari give it the value 91. Is the best approach to simply check what browser the user is using and base the key pressed on that or is there a way so that I can get 1 key code across all browsers? Note I am getting the value with the:
var code = (evt.keyCode ? evt.keyCode : evt.which);
I would love to not use a plugin if possible just because I only need to know about the command/ctrl (windows system) key pressed.
jQuery already handles that. To check if control was pressed you should use:
The list of modifier keys:
And as fudgey suggested:
Might work on MAC. Some other ways here as well.
If you're not interested in the the exact moment the Command key is pressed, just whether it is pressed when another key is pressed, then you can use the
metaKey
property of the event.Otherwise, for
keydown
andkeyup
events, the property you need iskeyCode
in all browsers. Unfortunately, the Command key does not have the same key code in all browsers, and the left and right Commands have different values in WebKit (91 and 93 respectively). I can't see an easy way of detecting these keys without some kind of browser sniff, but there may be one. Thewhich
property definitely won't help you.For more information, http://unixpapa.com/js/key.html has comprehensive coverage of key event handling in all the major browsers.
Here you go, try this live in this runnable code snippet: