Pour ajouter une suite, on peut récupérer plein de choses à l'intérieur de la fonction nommée checkKeycode(e) par Ryle.
Pour celle que j'utilise très souvent :
e.metaKey : qui dit si la touche méta est pressée (lors de l'appui sur la touche)
e.altKey : qui est true si la touche alt (option) est pressée (idem)
e.ctrlKey : qui est true si la touche control est pressée (idem)
e.shiftKey : qui est true si la touche Majuscule est pressée (idem)
Cela permet tout un tas de combinaisons qui permettent de faire du « tout clavier » très facilement.
Personnellement, je me suis fait un module spécial pour simplifier la détection des touches (pour avoir un version plus humaine). Peut-être que ça peut intéresser (j'ai mis ça dans un fichier js que je charge systématiquement dans toutes mes app) :
Code : Tout sélectionner
/* e.keyCode donne : */
const Key_A = 65 ;
const Key_B = 66 ;
const Key_C = 67 ;
const Key_D = 68 ; /* devient 16 avec Ctrl+Command — utiliser constante cf. ci-dessous */
const Key_D_CtrlMeta = 16 ;
const Key_E = 69 ;
const Key_F = 70 ;
const Key_G = 71 ;
const Key_H = 72 ;
const Key_I = 73 ;
const Key_J = 74 ;
const Key_K = 75 ;
const Key_L = 76 ;
const Key_M = 77 ;
const Key_N = 78 ;
const Key_O = 79 ;
const Key_P = 80 ;
const Key_Q = 81 ;
const Key_R = 82 ;
const Key_S = 83 ;
const Key_T = 84 ;
const Key_U = 85 ;
const Key_V = 86 ;
const Key_W = 87 ;
const Key_X = 88 ;
const Key_Y = 89 ;
const Key_Z = 90 ;
/*
Les flèches
Je ne me rappelle jamais si j'écris en anglais ou en français,
donc FLECHEB (flèche vers le bas) est égal à ARROWD (arrow
down)
*/
const Key_FLECHEB = 40 ;
const Key_ARROWD = 40 ;
const Key_FLECHEH = 38 ;
const Key_ARROWU = 38 ;
const Key_FLECHEG = 37 ;
const Key_ARROWL = 37 ;
const Key_FLECHED = 39 ;
const Key_ARROWR = 39 ;
const Key_ESCAPE = 27 ;
const Key_RETURN = 13 ;
const Key_ENTREE = 13 ;
Ensuite, il me suffit donc de faire :
Code : Tout sélectionner
window.onkeydown = function ( e ) {
switch ( e.keyCode ) {
case Key_A :
/* Fait ça si la touche « A » est pressée : */
//……
/* On peut aussi ajouter les tests sur les touches contrôle
au besoin avec des (if ( e.shiftKey) etc.)
*/
break ;
case Key_B :
/* Fait ça si la touche « B » est pressée : */
//……
break ;
// etc.
}
}
En espérant que ça servira…
Bien à vous tous,
Phil