7

Je travaille sur la gestion des clés dans le script java. J'ai fait des recherches et j'aimerais savoir si j'ai une bonne compréhension de la manipulation des clés.Gestion des clés JavaScript et compatibilité avec les navigateurs

KeyDown/KeyUp événement La clé vers le bas et les événements clés en place sont pris en charge par IE7 + et Firefox 3.5+ Je n'ai pas vérifié les versions antérieures des navigateurs, mais je suppose qu'ils soutiennent aussi ces événements.

Est-il correct de dire que chaque touche du clavier aura toujours un code clé.

CharCode

valeur CharCode est disponible sur le keypress.Majority des clés aura les charCodes qui représentent la valeur réelle. Certaines clés ne seront pas associées à un code de char. Par exemple. retour arrière, supprimer, touches fléchées.

Ai-je raison de dire que sur la touche, le code de char sera le même que le code clé?

Ordre des événements

  • KeyDown
  • KeyPress
  • KeyUp

Est-ce que cet ordre diffère d'un navigateur à? Par exemple j'ai deux fonctions. Le premier est lié à l'événement KeyDown, le second est lié à l'événement KeyPress. L'appel d'un événement KeyPress signifie que l'événement KeyDown sera également appelé, lorsque je veux qu'un seul de ces événements fonctionne.

Enfin, j'ai envisagé d'utiliser différentes routines de manipulation de clés en fonction du navigateur de version. Par exemple:

  • Version Vérification du navigateur
  • Obtenir une clé de routine de traitement en fonction de la version du navigateur

Cela introduira un code supplémentaire, mais devrait simplifier la maintenance. Aussi, à l'avenir, quand je veux fournir un support pour un navigateur différent, je peux simplement ajouter une autre routine et cela n'affectera pas la routine de gestion de caractères existante.

Jusqu'à présent, je suis en train de lire http://www.quirksmode.org

Répondre

5

L'article suivant par Jan Wolter n'a jamais échoué et est de loin la meilleure ressource sur les événements clés du navigateur J'ai vu: http://unixpapa.com/js/key.html. Il répond à toutes les questions que vous avez posées.Une chose à souligner est qu'avec une utilisation prudente des propriétés d'événement clé à votre disposition, vous aurez probablement besoin de renifler pour un navigateur particulier dans votre code de manipulation de clé.

+0

Bel article, Est-ce qu'il tient même aujourd'hui ?? –

+0

@SurajJain: Oui, bien que les navigateurs modernes prennent en charge des propriétés plus récentes et meilleures telles que ['key'] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). Je doute que les vieilles propriétés disparaîtront bientôt, bien qu'elles soient officiellement désapprouvées. –

0

2015 mise à jour:

According to MDNevent.charCode, event.keyCode et event.which ont tous été dépréciée. event.key est le moyen le plus récent et le plus chaud de vérifier quelle touche a été enfoncée.

Il semble facile à utiliser, mais le support du navigateur n'est pas parfait. Tout ce que nous avons maintenant est un support partiel dans Chrome 45+ (pas encore AFAIK), Firefox 23+ et IE 9+.

+1

https://xkcd.com/927/ – aiguofer

Questions connexes