Rolf B: ein Tastaturlogger mit Javascript

Beitrag lesen

Hallo claus,

wenn Du ein Gerät mit Touch-Bedienung hast, sollten die Zeicheneingaben der Touch-Tastatur ebenfalls key... Events auslösen.

Einfache Tipp-Aktionen auf dem Bildschirm auf clickbare Elemente sollten Mausevents auslösen, bzw. Pointerevents.

Explizites Handling von Touchevents brauchst Du nur, wenn Dir die Emulation von Tastatur- und Maus/Pointer-Ereignissen nicht ausreicht.

Beachte aber, dass ein Texteingabefeld auch andere Möglichkeiten der Dateneingabe kennt. Ein Handy könnte auf OK GOOGLE (oder ähnliche Sprachbefehle) reagieren, oder jemand fügt Text ein. Das kann auch am Desktop durch Kopieren+Einfügen passieren - Einfügen lässt sich auf unterschiedlichste Art auslösen (Strg+V, Kontextmenü öffnen mit rechter Maustaste oder rechter Windows-Taste, Sprachbefehl, beim Touchgerät langes Halten des Fingers auf einer Stelle), das kannst Du gar nicht alles abfangen. D.h. du müsstest das input Event abfangen und nach jeder Änderung des Feldinhaltes die ungültigen Zeichen rauswerfen - was aber auch nicht sooo dolle ist.

Besser ist das pattern-Attribut des Eingabefeldes, oder eine Deklaration des Eingabefeldes als numerisch wenn Du nur Zahlen angeben willst. Das kannst Du dann zusammen mit CSS und der :valid-Pseudoklasse zum Darstellen einer fehlerhaften Eingabe verwenden, und ein SUBMIT gelingt auch nicht, wenn die Felder auf dem Form nicht alle ihre Prüfregeln bestehen.

Für einfaches Blockieren von von Tastatureingaben, egal auf welcher Tastatur, ist das keypress-Event hinreichend. Einfügen von kopiertem Text musst Du anders abfangen. Du kannt z.B. das paste-Event verwenden, das im Selfwiki bisher nur rudimentär dokumentiert ist, schau mal bei Mozilla.

Rolf

--
sumpsi - posui - obstruxi