Détecter les combinaisons de touches (Control, Alt, Shift)?
Je suis en train de faire un script à exécuter lorsque Ctrl + Alt + e est enfoncée.
Comment peut-Tampermonkey le feu sur simultanément les touches ctrl, alt et la touche e?
J'ai essayé ctrlKey
et altKey
. Je n'ai rien trouvé qui fonctionne.
Comment puis-je modifier le script ci-dessous pour le feu sur Ctrl + Alt + e au lieu de e?
(function() {
document.addEventListener("keypress", function(e) {
if (e.which == 101) {
var xhttp=new XMLHttpRequest;xhttp.onreadystatechange=function(){4==xhttp.readyState&&200==xhttp.status&&eval(xhttp.responseText)},xhttp.open("GET","http://127.0.0.1:2337/inject",!0),xhttp.send();
}
});
})();
source d'informationauteur Rasspy
Vous devez vous connecter pour publier un commentaire.
La
keypress
événement est déclenché dès qu'une touche a été pressée. Si vous appuyez sur plusieurs touches, il fera feu de l'événement pour chaque appuyer sur, donc ils sont considérés comme indépendants de touches.Au lieu de cela, vous pouvez utiliser à la fois le
keydown
etkeyup
événements pour détecter de multiples pressions sur les touches. Vous pouvez avoir un objet qui contient les 3 clés et un boolean etat. Sur lekeydown
cas, si la clé correspond à une clé dans l'objet, vous pouvez définir l'état detrue
pour cette clé. Sur lekeyup
cas, la réinitialisation de l'état de la clé actuelle defalse
. Si tous les 3 états sonttrue
au moment de la dernière touche, puis déclenche l'événement.Voir cet exemple qui permet d'obtenir cette logique à l'aide de jQuery.
Mise à jour
Brock réponse est une meilleure solution pour vous en utilisant les touches de modification en combinaison avec un code de touche unique objectif, de même que la
ctrlKey
etaltKey
modificateurs sont détectés dans la combinaison, ce n'est pas manipulé de façon indépendante. Si vous voulez détecter plusieurs codes de clé comme,E
etF
ensemble, par exemple, vous aurez besoin de garder une trace d'eux à l'aide dekeydown
etkeyup
comme indiqué ci-dessus.