HTML \ Javascript – appuyez sur la touche ATL \ CTRL \ SHIFT

Existe-t-il la possibilité de capturer une touche de presse? C'est-à-dire Ctrl + Maj + Alt appuyez sur (sans autre touche, appuyez sur).

Dans l'extrait ci-dessous (vérifié sous Chrome), je ne peux capturer le décalage que lorsque d'autres touches "régulières" ont été appuyées.

MISE À JOUR :

<html> <head> <script> function onKeyPressed(event) { event = event || window.event; var code = event.keyCode; var key = String.fromCharCode(event.keyCode); var shift = event.shiftKey; var alt = event.altKey; var ctrl = event.ctrlKey; var which = event.which; var str = "code = " + code + "\n" + "key = " + key + "\n" + "shift = " + shift + "\n" + "alt = " + alt + "\n" + "ctrl = " + ctrl + "\n" + "which = " + which; alert(str); }; function onClick(event) { event = event || window.event; var x = event.clientX; var y = event.clientY; var str = "x = " + x + "\n" + "y = " + y; alert(str); }; function onKeyUp(event) { alert("onKeyUp"); }; function onKeyDown(event) { alert("onKeyDown"); } </script> </head> <body onmousedown="onClick(event)" onkeypress="onKeyPressed(event)" onkeyup="onKeyUp(event)" onkeydown="onKeyDown(event)"></body> </html> 

Comment ces clés peuvent-elles être capturées?

Il y a une très jolie nouvelle bibliothèque JS qui fait un excellent travail de suivi des événements clavier dans le navigateur.

C'est ce qu'on appelle Mousetrap. Voici le lien: http://craig.is/killing/mice

J'espère que cela pourra aider.

JQuery est-elle autorisée? Si tel est le cas, regardez ceci:

http://www.stepanreznikov.com/js-shortcuts/

Sinon, vous pouvez donner une chance à @Max Gherkins

AFAIK Vous devez utiliser l'événement keyup ou keydown pour capturer le shift, keyPress ne le capture pas. Consultez cette liste de clés capturées par chaque événement si vous avez besoin de plus de détails. Comme shift est une touche modificatrice, elle n'est pas captée. Pourquoi c'est le cas, je ne peux pas expliquer.