Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Les API Web
  3. KeyboardEvent

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

KeyboardEvent

Baseline Widely available *

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.

Les objetsKeyboardEvent décrivent l'interaction d'un utilisateur avec le clavier. Chaque événement décrit une touche ; le type d'événement (keydown,keypress, oukeyup) identifie quel type d'activité a été effectué.

Note :KeyboardEvent indique exactement ce qui est en train de se passer sur une touche. Lorsque vous devez gérer une saisie de texte, utilisez l'événementinput HTML5 à la place. Par exemple, si un utilisateur saisit du texte à partir d'un système d'écriture à la main comme une tablette PC, les événements touche peuvent ne pas être déclenchés.

Constructeur

KeyboardEvent()

Crée un objetKeyboardEvent.

Méthodes

Cette interface hérite également des méthodes de ses parents,UIEvent etEvent.

KeyboardEvent.getModifierState()

Retourne unBoolean indiquant si une touche modifcatrice, telle que

Alt

,

Shift

,

Ctrl

, ou

Meta

, était pressée quand l'évènement a été créé.

KeyboardEvent.initKeyEvent()Obsolète

Initialise un objetKeyboardEvent. Ceci a été implémenté seulement par Gecko (d'autres utilisaientKeyboardEvent.initKeyboardEvent()) et ne devrait plus être utilisé. La manière moderne standard consiste à utiliser le constructeurKeyboardEvent().

KeyboardEvent.initKeyboardEvent()Obsolète

Initialise un objetKeyboardEvent. Cela n'a jamais été implémenté par Gecko (qui utilisaitKeyboardEvent.initKeyEvent()) et ne devrait plus être utilisé. La manière moderne standard consiste à utiliser le constructeurKeyboardEvent().

Propriétés

Cette interface hérite également des propriétés de ses parents,UIEvent etEvent.

KeyboardEvent.altKeyLecture seule

Returne unBoolean qui esttrue si la touche

Alt

(

Option

ou

sous OS X) était active quand l'évènement touche a été généré.

KeyboardEvent.charNon standardObsolèteLecture seule

Renvoie uneDOMString représentant la valeur de caractère de la touche. Si la touche correspond à un caractère imprimable, cette valeur est une chaîne Unicode non vide contenant ce caractère. Si la touche n'a pas de représentation imprimable, il s'agit d'une chaîne vide.

Note :Si la touche est utilisée comme une macro insérant plusieurs caractères, la valeur de cet attribut est la chaîne entière, pas seulement le premier caractère.

Attention :Cela a été supprimé des DOM Level 3 Events. C'est pris en charge uniquement sur IE9 + et Microsoft Edge.

KeyboardEvent.charCodeObsolèteLecture seule

Retourne unNumber représentant le numéro de référence Unicode de la touche ; cet attribut est utilisé uniquement par l'événementkeypress. Pour les touches dont l'attributchar contient plusieurs caractères, il s'agit de la valeur Unicode du premier caractère de cet attribut. Dans Firefox 26, cela retourne des codes pour les caractères imprimables.

Attention :Cet attribut est obsolète : vous devriez utiliserKeyboardEvent.key à la place, si disponible.

KeyboardEvent.codeLecture seule

Retourne uneDOMString avec la valeur du code de la touche représentée par l'événement.

KeyboardEvent.ctrlKeyLecture seule

Retourne unBoolean qui esttrue si la touche

Ctrl

était active lorsque l'événement touche a été généré.

KeyboardEvent.isComposingLecture seule

Renvoie unBoolean qui esttrue si l'événement est déclenché aprèscompositionstart et avantcompositionend.

KeyboardEvent.keyLecture seule

Retourne uneDOMString représentant la valeur de touche de la touche représentée par l'événement.

KeyboardEvent.keyCodeObsolèteLecture seule

Retourne unNumber représentant un code numérique dépendant du système et de l'implémentation, identifiant la valeur non modifiée de la touche pressée.

Attention :Cet attribut est obsolète. vous devriez utiliserKeyboardEvent.key à la place, si disponible.

KeyboardEvent.keyIdentifierNon standardObsolèteLecture seule

Cette propriété n'est pas standard et a été abandonnée en faveur deKeyboardEvent.key. Elle faisait partie d'une ancienne version de DOM Level 3 Events.

KeyboardEvent.keyLocationNon standardObsolèteLecture seule

C'est un alias obsolète non standard pourKeyboardEvent.location. Il faisait partie d'une ancienne version de DOM Level 3 Events.

KeyboardEvent.localeLecture seule

Retourne uneDOMString représentant une chaîne de paramètres régionaux indiquant les paramètres régionaux pour lesquels le clavier est configuré. Cela peut être une chaîne vide si le navigateur ou l'appareil ne connaît pas les paramètres régionaux du clavier.

Note :Cela ne décrit pas les paramètres régionaux des données entrées. Un utilisateur peut utiliser une disposition du clavier donnée, tout en saisissant du texte dans une autre langue.

KeyboardEvent.locationLecture seule

Retourne unNumber représentant l'emplacement de la touche du clavier ou tout autre dispositif d'entrée.

KeyboardEvent.metaKeyLecture seule

Retourne unBoolean qui esttrue si la touche

Meta

(sur les claviers Mac, la touche

⌘ Command

; sur les claviers Windows, la touche Windows (

)) était active quand l'évènement touche a été généré.

KeyboardEvent.repeatLecture seule

Retourne unBooléen qui esttrue si la touche est maintenue enfoncée de telle sorte qu'elle se répète automatiquement.

KeyboardEvent.shiftKeyLecture seule

Retourne unBoolean qui esttrue si la touche

Shift

était active quand l'évènement touche a été généré.

KeyboardEvent.whichObsolèteLecture seule

Retourne unNumber représentant un code numérique dépendant du système et de l'implémentation, identifiant la valeur non modifiée de la touche pressée ; c'est généralement le même quekeyCode.

Attention :Cet attribut est obsolète ; vous devriez utiliserKeyboardEvent.key à la place, si disponible.

Notes

Les événements existants sontkeydown,keypress etkeyup. Pour la plupart des touches, Gecko génère une suite d'événements touche comme suit :

  1. lorsque la touche est d'abord enfoncée, l'événementkeydown est envoyé ;
  2. si la touche n'est pas une touche de modification, l'événementkeypress est envoyé ;
  3. lorsque l'utilisateur relâche la touche, l'événementkeyup est envoyé.

Cas particuliers

Certaines touches inversent l'état d'un voyant lumineux ; celles-ci comprennent des touches telles que Caps Lock, Num Lock et Scroll Lock. Sous Windows et Linux, ces touches génèrent uniquement les événementskeydown etkeyup.

Note :Sous Linux, Firefox 12 et les versions antérieures ont également envoyé l'événementkeypress pour ces touches.

Cependant, une limitation du modèle d'événement Mac OS X fait que Caps Lock ne génère que l'événementkeydown. Num Lock était supporté sur certains modèles d'ordinateurs portables plus anciens (modèles 2007 et plus anciens), mais depuis lors, Mac OS X n'a pas supporté Num Lock même sur les claviers externes. Sur les MacBooks plus anciens avec une touche Num Lock, cette touche ne génère aucun événement touche. Gecko supporte la touche Scroll Lock si un clavier externe ayant une touche F14 est connecté. Dans certaines anciennes versions de Firefox, cette touche générait un événementkeypress ; ce comportement incohérent était lebug Firefox 602812.

Gestion de l'auto-répétition

Lorsqu'une touche est maintenue enfoncée, elle commence à se répéter automatiquement. Cela a pour résultat qu'une suite d'événements similaire à ce qui suit est générée :

  1. keydown
  2. keypress
  3. keydown
  4. keypress
  5. << répétition jusqu'à ce que l'utilisateur relâche la touche >>
  6. keyup

C'est ce que la spécification DOM Niveau 3 dit qu'il devrait se produire. Cependant, il y a quelques mises en garde, comme décrit ci-dessous.

Auto-répétition sur certains environnements GTK tels que Ubuntu 9.4

Dans certains environnements basés sur GTK, l'auto-répétition génère automatiquement un événement natif lors de la répétition automatique, et Gecko n'a aucun moyen de connaître la différence entre une suite répétée de touches et une répétition automatique. Sur ces plateformes, une touche auto-répétée génère donc la suite d'événements suivante :

  1. keydown
  2. keypress
  3. keyup
  4. keydown
  5. keypress
  6. keyup
  7. << répétition jusqu'à ce que l'utilisateur relâche la touche >>
  8. keyup

Dans ces environnements, malheureusement, il n'y a aucun moyen pour que le contenu Web puisse faire la différence entre les touches répétées automatiquement et les touches qui sont simplement pressées à plusieurs reprises.

Gestion de l'auto-répétition avant Gecko 5.0

Avant Gecko 5.0, la gestion du clavier était moins cohérente entre les plates-formes.

Windows

Le comportement de la répétition automatique est le même que dans Gecko 4.0 et ultérieur.

Mac

Après l'événement keydown initial, seuls les événements keypress sont envoyés jusqu'à ce que l'événement keyup se produise ; les événements de clavier intermédiaires ne sont pas envoyés.

Linux

Le comportement de l'événement dépend de la plate-forme particulière. Il se comportera comme Windows ou Mac suivant ce que fait le modèle d'événement natif.

Note :Le déclenchement manuel d'un événement ne génèrepas l'action par défaut associée à cet événement. Par exemple, le déclenchement manuel d'un événement touche n'entraîne pas l'apparition de cette lettre dans une zone de saisie de texte ayant la focalisation. Dans le cas des événements de l'interface utilisateur, cela est important pour des raisons de sécurité, car cela empêche les scripts de simuler les actions de l'utilisateur interagissant avec le navigateur lui-même.

Exemple

html
<!doctype html><html>  <head>    <script>      "use strict";      document.addEventListener(        "keydown",        (event) => {          const nomTouche = event.key;          if (nomTouche === "Control") {            // Pas d'alerte si seule la touche Control est pressée.            return;          }          if (event.ctrlKey) {            // Même si event.key n'est pas 'Control' (par ex., 'a' is pressed),            // event.ctrlKey peut être true si la touche Ctrl est pressée dans le même temps.            alert(`Combinaison de ctrlKey + ${nomTouche}`);          } else {            alert(`Touche pressée ${nomTouche}`);          }        },        false,      );      document.addEventListener(        "keyup",        (event) => {          const nomTouche = event.key;          // Dès que l'utilisateur relâche la touche Ctrl, la touche n'est plus active.          // Aussi event.ctrlKey est false.          if (nomTouche === "Control") {            alert("La touche Control a été relâchée");          }        },        false,      );    </script>  </head>  <body></body></html>

Spécifications

Specification
UI Events
# interface-keyboardevent

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2026 Movatter.jp