Détection de frappe combinée en javascript

Je crée une page html qui contient une question (une situation de casse-tête). La réponse à la question est "Windows 7". Mais je souhaite que l'utilisateur n'intervienne que s'il appuie sur la windows key followed by 7 . Je veux créer une fonction JavaScript pour cela. Je peux capturer la pression de touche individuelle en obtenant la valeur ascii de la frappe de touche. Mais lorsque j'essaie de le faire de façon combinée, cela ne fonctionne pas. Comment résoudre cette … des idées …

http://jsfiddle.net/loktar/MsNPW/5/

 var keys = []; document.onkeydown = function(evt){ var key = evt.keyCode; keys[key] = true; if(keys[91] && keys[55]){ console.log("win7"); } } document.onkeyup = function(evt){ var key = evt.keyCode; keys[key] = false; } 

Vous pouvez détecter les événements de dépannage et de clavardage et conserver une liste de touches qui ont été pressées. Ajoutez la clé à la liste sur la liste déroulante et supprimez-les de la liste sur la touche. De là, vous pouvez simplement vérifier la liste à des moments appropriés (p. Ex. À la fin de l'événement de dépannage).

N'oubliez pas que chaque pression de touche est son propre événement unique. Les clés multiples qui sont poussées ne sont pas liées naturellement, c'est pourquoi vous devez créer cette liste vous-même.

Je vous suggère d'utiliser une bibliothèque comme jQuery, et il peut y avoir des plugins qui peuvent vous aider. Cela dit, le concept général que j'ai décrit ne devrait pas être trop difficile à mettre en œuvre. Permettez-moi de savoir si le pseudocode aiderait à clarifier l'algorithme que je décris.