JavaScript-Tastencode-Finder

Drücken Sie eine beliebige Taste auf Ihrer Tastatur, um ihre JavaScript-Event-Eigenschaften zu sehen.

Beliebige Taste drücken…

30 Jahre Geschichte der Tastaturereignisse in JavaScript

Noch keine Tasten gedrückt

Funktionsweise

  1. Eine Taste drücken: Klicken Sie in den Eingabebereich und drücken Sie eine beliebige Taste auf Ihrer Tastatur, Buchstaben, Zahlen, Funktionstasten, Pfeile, Modifier oder Sondertasten.
  2. Tastencodes ablesen: Das Tool zeigt sofort die Werte event.key, event.code, event.keyCode (Legacy) und charCode der Taste an.
  3. In Ihrem Code verwenden: Kopieren Sie die exakten Werte, die Sie für Ihre Tastatur-Event-Listener oder Tastenkürzel-Implementierungen benötigen.

Warum den Keycode-Finder verwenden?

JavaScript-Tastatur-Events legen mehrere verschiedene Eigenschaften offen (key, code, keyCode, charCode und which) und zu wissen, welche zu verwenden ist und welcher Wert verglichen werden soll, ist immer wieder knifflig. Der Keycode-Finder beseitigt das Rätselraten, indem Sie eine Taste drücken und sofort alle Event-Eigenschaften sehen können. Das ist unschätzbar wertvoll für den Bau von Tastenkürzeln, das Behandeln von Sondertasten, die Implementierung von Hotkeys und das Debuggen von Tastatur-Event-Listenern.

Funktionen

Häufig gestellte Fragen

Was ist der Unterschied zwischen event.key und event.keyCode?

event.key ist der moderne Standard, er liefert einen lesbaren String wie „ArrowLeft" oder „Enter". event.keyCode ist ein veralteter numerischer Code (deprecated, aber noch unterstützt). Verwenden Sie event.key für neuen Code; verwenden Sie event.keyCode, wenn Sie ältere Browser-Kompatibilität pflegen.

Wie erkenne ich Strg+S oder andere Tastenkombinationen?

Tastenkombinationen verwenden event.key kombiniert mit Modifier-Prüfungen: if (event.ctrlKey && event.key === "s"). Drücken Sie Strg+S in diesem Tool, um alle Werte zu sehen, und replizieren Sie die exakte Bedingung in Ihrem Event-Listener.

Warum zeigen einige Tasten denselben keyCode?

keyCode-Werte waren nicht standardisiert und einige Tasten teilen sich Codes je nach Kontext. event.code ist zuverlässiger, es identifiziert die physische Tastenposition (z. B. „KeyA") unabhängig vom Tastaturlayout, während event.key das Zeichen widerspiegelt, das diese Taste erzeugt.

30 Jahre Geschichte der Tastaturereignisse in JavaScript

Tastaturereignisse haben eine notorisch chaotische Geschichte im DOM. Netscape Navigator 2 (1995) führte die ursprünglichen onkeydown-, onkeypress- und onkeyup-Handler mit einer numerischen keyCode-Eigenschaft ein, die keine Spezifikation hatte; jeder Browser erfand seine eigenen Werte. Internet Explorer 4 (1997) implementierte seine eigene Variante mit event.keyCode als einziger Eigenschaft, während Netscape bei event.which blieb. DOM Level 2 Events (W3C, November 2000) standardisierte den Ereignisfluss (Capture/Bubble), ließ Tastaturereignisse aber explizit außen vor, weil sich die Hersteller nicht einigen konnten. Das Ergebnis: Entwickler schrieben über ein Jahrzehnt lang Code wie e.keyCode || e.which. DOM Level 3 Events (W3C Working Draft 2003, Recommendation 2018) führte schließlich das moderne event.key (Unicode-Zeichen oder benannte Taste wie «ArrowLeft») und event.code (physische Tastenposition wie «KeyA», unabhängig vom Layout) ein, zusammen mit der Veraltung von keyCode, charCode und which. Die UI Events-Spezifikation (W3C, laufend) ist die moderne Heimat dieser Arbeit. Browser zogen allmählich nach: Chrome 51 (Mai 2016), Firefox 47 (Juni 2016), Safari 10.1 (März 2017) lieferten alle event.code-Unterstützung. Das veraltete keypress-Ereignis ist zugunsten der beforeinput- und input-Ereignisse veraltet.

Die 5 Eigenschaften, entschlüsselt

Wo Keycode-Suche wirklich wichtig ist

Häufige Fehler bei der Behandlung von Tastaturereignissen

Weitere häufig gestellte Fragen

Warum löst mein Tasten-Handler nicht aus, wenn der Benutzer eine nicht-US-Tastatur hat?

Fast immer, weil Sie event.key für ein Zeichen prüfen, das auf diesem Layout nur mit Shift existiert. Auf einer deutschen QWERTZ-Tastatur ist «/» Shift+7 (nicht seine eigene Taste); auf französischem AZERTY werden die Ziffern 0-9 mit Shift+der-Reihe-darüber getippt. Verwenden Sie event.code (physische Taste) für positionsbasierte Shortcuts oder event.key für inhaltsbasierte Shortcuts (wo Sie tatsächlich das Zeichen wollen, das der Benutzer gerade getippt hat).

Wie behandle ich Cmd+K / Ctrl+K plattformübergreifend konsistent?

Die Standard-Idiom: if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k") { e.preventDefault(); openPalette(); }. Auf macOS ist e.metaKey die Cmd-Taste; auf Windows/Linux ist e.ctrlKey das, was Benutzer erwarten. Akzeptieren Sie beides. Immer preventDefault, weil der Browser Cmd+K in einigen Browsern an «Adressleiste fokussieren» bindet. Fügen Sie !e.repeat hinzu, um Auslösung beim Tastenhalten zu vermeiden.

Kann JavaScript globale Tastenanschläge außerhalb der Seite erkennen?

Nein, und dies ist aus Sicherheitsgründen so konzipiert. Der Browser löst Tastaturereignisse nur für die fokussierte Seite oder das Element aus. Browser-Erweiterungen können mit breiterem Umfang über die chrome.commands-API hören. Native Apps in Electron, Tauri usw. können globale Hooks auf OS-Ebene verwenden. Bank- und 2FA-Apps verlassen sich auf diese Isolation: Ein bösartiger Tab kann Ihren Passwortmanager nicht mit Keyloggern abfangen.

Was ist der richtige Weg, um «gerade gedrückt» vs «gehalten» zu erkennen?

Für Toggles prüfen Sie !e.repeat im keydown-Handler, das erste Ereignis hat repeat: false, nachfolgende Auto-Wiederholungs-Ereignisse haben repeat: true. Für kontinuierliche Aktionen (Spielbewegung) verfolgen Sie den Tastenstatus in einem Set: hinzufügen bei keydown, entfernen bei keyup, dann in Ihrer Render-Schleife prüfen Sie keysHeld.has("KeyW"). Dies entkoppelt die Eingabe von der Framerate und behandelt mehrere gleichzeitige Tasten (bewegen + springen).

Wird etwas an einen Server gesendet, wenn ich hier Tasten drücke?

Nein. Tastenereignisse werden lokal von JavaScript erfasst und auf dieser Seite ohne Netzwerkanfrage angezeigt. Öffnen Sie den Network-Tab in DevTools, tippen Sie; Sie werden null ausgehenden Verkehr sehen. Sicher zum Testen in jedem Kontext, einschließlich dem Entdecken, was Passwörter oder sensible Shortcuts auf Ihrer Tastatur produzieren.

Verwandte Tools