Webdesign mit CSS, HTML und Javascript
Stil mit {stil}
![]() Besser fotografieren: Schärfe kommt vom Objektiv foto.5lux.de Online-Magazin für Fotografie und Bildbearbeitung |
Okt 2008
Javascript keydown, keyup und keypress • Tastaturereignisse
(noch nicht in DOM 2)
Ereignisse für alle Elemente außer APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE
Das einfache Drücken und Loslassen einer Taste auf der Tastatur erzeugt drei Ereignisse: onkeydown, onkeypress und onkeyup (in dieser Reihenfolge). onkeydown und onkeypress feuern kontinuierlich, so lange der Benutzer die Taste gerückt hält. Wenn der Benutzer die Taste loslässt, feuert onkeyup ein einziges Mal.
onkeydown ruft einen Event Handler auf, wenn der Benutzer eine Taste auf der Tastatur herunterdrückt.
onkeyup ruft einen Event Handler auf, wenn der Benutzer eine Taste auf der Tastatur losgelassen hat.
onkeypress ruft einen Event Handler auf, wenn der Benutzer eine Taste auf der Tastatur herunterdrückt oder festhält.
In der DOM Level 2-Empfehlung sind keine Tastatur-Ereignisse zu finden. In der Unicode-Welt sind Tastatur-Ereignisse noch zu kompliziert, um sie in einen generellen Standard einzubinden. Aber Tastatur-Ereignisse sind fundamental, in allen modernen Browsern implementiert und der HTML 4-Standard erlaubt keydown, keypress und keyup-Ereignisse für viele Elemente.
Attribute
- type (string, readonly, case-insensitive, muss ein XML-Name sein)
- Typ des Ereignisses
- target (readonly)
- Objekt zu dem das Ereignis ursprünglich gesendet wurde
- which
- Die gedrückte Taste als Ascii-Wert
Beispiel: Keycodes beim Drücken einer Taste
Bei einem Tastatur-Ereignis wird ein numerischer Code für die jeweilige Taste erzeugt. Für die Taste „A“ ist das z.B. die Zahl 65. Dieselbe Taste erzeugt mindestens zwei Zeichen, nämlich „A“ und „a“, je nachdem, ob die Shift-Taste gedrückt wurde oder nicht. Auf einem Mac erzeugt die A-Taste noch weitere Zeichen, wenn die Alt-Taste zusätzlich gedrückt wird.
Kleine und große Zeichen eingeben:
