Maison >interface Web >js tutoriel >Quelle est la différence entre les événements de clavier `onKeyDown`, `onKeyPress` et `onKeyUp` de JavaScript ?

Quelle est la différence entre les événements de clavier `onKeyDown`, `onKeyPress` et `onKeyUp` de JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 08:25:15618parcourir

What's the Difference Between JavaScript's `onKeyDown`, `onKeyPress`, and `onKeyUp` Keyboard Events?

Comprendre les nuances des événements de clavier : onKeyPress vs onKeyUp et onKeyDown

Lorsque vous travaillez avec des événements de clavier en JavaScript, il est essentiel de faire la différence entre onKeyPress, onKeyUp et onKeyDown événements. Bien que ces événements puissent sembler similaires, ils servent des objectifs distincts :

onKeyDown et onKeyUp :

  • Comme décrit, onKeyDown est déclenché lorsqu'une touche est initialement enfoncée, tandis que onKeyUp se produit lorsque la clé est relâchée. Ces événements fournissent des informations précieuses sur le moment où une clé est activement utilisée.

onKeyPress :

  • Contrairement à onKeyUp, onKeyPress est un événement obsolète et a a été remplacé par onKeyDown. Cependant, il ressemble également à onKeyUp dans le sens où il se produit après onKeyDown lorsqu'une touche est enfoncée et relâchée.

L'exception avec WebKit :

  • Dans dans le cas des navigateurs WebKit, il existe un événement supplémentaire appelé textInput qui se situe entre onKeyPress et onKeyUp. Cet événement est spécifiquement lié à la saisie de texte et permet de détecter le moment où les caractères sont saisis.

Une démonstration illustrative :

Pour visualiser clairement l'ordre de ces événements, essayez l'extrait de code suivant :

window.addEventListener("keyup", log);
window.addEventListener("keypress", log);
window.addEventListener("keydown", log);

function log(event){
  console.log(event.type);
}

En saisissant du texte dans un champ de saisie, vous remarquerez la séquence d'événements suivante enregistrée dans le console :

1. keydown - indique la pression initiale sur la touche
2. la pression sur une touche (si prise en charge) - similaire à la touche enfoncée, se produit lorsque la touche est maintenue enfoncée
3. textInput (WebKit uniquement) - suit la saisie de texte
4. keyup - signifie la libération de la clé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn