7

Ich arbeite an der Handhabung von Schlüsseln in Java-Skript. Ich habe etwas recherchiert und würde gerne wissen, ob ich das Schlüsselhandling richtig verstanden habe.JavaScript-Key-Handhabung und Browser-Kompatibilität

KeyDown/KeyUp Ereignis Die Taste und Schlüsselveranstaltungen unterstützt werden durch IE7 + und Firefox 3.5+ ich nicht die früheren Versionen der Browser überprüfen haben, aber ich denke, dass sie auch diese Ereignisse unterstützen.

Ist es korrekt zu sagen, dass jede Taste auf der Tastatur immer einen Schlüsselcode haben wird.

CharCode

CharCode Wert ist auf der keypress.Majority des Schlüssels verfügbar wird die Zeichencodes, die den tatsächlichen Wert darstellen. Bei einigen Tasten ist kein Code zugeordnet. Z.B. Rücktaste, löschen, Pfeiltasten.

Bin ich richtig zu sagen, dass auf dem Tastendruck der Charcode der gleiche wie der Schlüsselcode ist?

Reihenfolge der Ereignisse

  • KeyDown-
  • KeyPress
  • KeyUp

dieser Reihenfolge von Browser zu Browser unterscheidet sich? Zum Beispiel habe ich zwei Funktionen. First ist an das KeyDown-Ereignis gebunden, das zweite ist an das KeyPress-Ereignis gebunden. Wenn Sie ein KeyPress-Ereignis aufrufen, wird auch das KeyDown-Ereignis aufgerufen, wenn nur eines dieser Ereignisse funktionieren soll.

Schließlich habe ich überlegt, je nach Version des Browsers verschiedene Schlüsselverarbeitungsroutinen zu verwenden. Zum Beispiel:

  • prüfen Browserversion
  • Schlüssel Behandlungsroutine Get je nach Browserversion

Dieser zusätzliche Code einführen, sondern die Wartung vereinfachen. Wenn ich in Zukunft einen anderen Browser unterstützen möchte, kann ich einfach eine weitere Routine hinzufügen und die vorhandene Routine zur Handhabung von Zeichen nicht beeinflussen.

Bisher habe ich gelesen, http://www.quirksmode.org

Antwort

5

Der folgende Artikel von Jan Wolter hat mich nie im Stich gelassen und ist mit Abstand die beste Ressource für Browser-Key-Events Ich habe gesehen: http://unixpapa.com/js/key.html. Es beantwortet alle Ihre Fragen.

Eine Sache zu betonen ist, dass mit sorgfältiger Nutzung der Schlüsselereignis Eigenschaften zu Ihrer Verfügung fast sicher nie für einen bestimmten Browser in Ihrem Schlüssel behandeln Code schnüffeln müssen.

+0

Schöner Artikel, hält es sogar heute ?? –

+0

@SurajJain: Ja, obwohl moderne Browser neuere, bessere Eigenschaften wie ['key'] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) unterstützen. Ich bezweifle, dass die alten Immobilien bald wieder verschwinden werden, obwohl sie offiziell veraltet sind. –

0

2015 Update:

According to MDNevent.charCode, event.keyCode und event.which sind alle veraltet. event.key ist der neueste und heißeste Weg zu überprüfen, welche Taste gedrückt wurde.

Es sieht einfach zu bedienen, aber Browser-Unterstützung ist nicht perfekt. Alles, was wir jetzt haben, ist teilweise Unterstützung in Chrome 45+ (noch nicht AFAIK), Firefox 23+ und IE 9+.

+1

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

Verwandte Themen