Wie man die Taste gedrückt und setzen Sie in ein array in JavaScript?
Wie bekomme ich die Taste, die gedrückt wurde, und, anstatt die Schlüssel-code, legen Sie, dass die Schlüssel in einem array?
Beispielsweise der Benutzer drücken 'a'. Dann den code setzen 'ein' - nicht den keycode für die Zeichen in ein array.
Vielen Dank im Voraus!
Warum verwenden Sie key-Eigenschaft? Versuchen Sie dieses: Dokuments.onkeydown = function(e) {alert(e.key);}; Es ist nicht nötig zu konvertieren Schlüsselcode zu Zeichen.
InformationsquelleAutor OOProg | 2010-09-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ist mit sowas?
UPDATE: Wenn Sie erfordern genaue Charakter-Informationen (wie die Unterscheidung von groß-von Kleinbuchstaben, und andere Dinge), stellen Sie sicher, dass Sie @Tim das Down - Kommentare unten und seine andere Antwort.
keypress
Ereignis, um das Zeichen eingegeben, nicht diekeydown
Veranstaltung.Nach die quriksmode Artikel, die
keydown
Fall scheint das zuverlässigste. Der Hauptunterschied ist, dass bei der Verwendung derkeydown
Veranstaltung, die Sie würde erhalten die gleichekeyCode
für Kleinbuchstaben und Großbuchstaben (weil man durch drücken der gleichen Taste). Wenn dies akzeptabel ist oder nicht, hängt davon ab, was der OP ist der Aufbau. Übersehe ich etwas anderes?Bei allem Respekt für PPK, dass insbesondere quirksmode Tabelle ist nichts, wie so hilfreich, wie unixpapa.com/js/key.html. Der Absatz mit dem Betreff "keyCode und charCode" im quirksmode enthält die crux dabei:
keydown
undkeyup
Veranstaltungen einfach nicht enthalten Charakter-Informationen. Einen Erfolg können Sie scheinen, um mit ihm habe, ist zufällig und unzuverlässig. Wenn Sie sind besorgt über die Oper der fehlenden Unterstützung fürcharCode
glücklicherweise Opera unterstützt diewhich
Eigenschaft, die, da Sie funktioniert in allen nicht-IE-Browser ist mehr als nützlichcharCode
und ist nicht Teil der quirksmode.Interessante Punkte. Jedoch, wenn wir uns nicht kümmern, Charakter-Informationen, und verlangen nur, dass die Tasten-codes (wie bei der Umsetzung der Eingaben von einem browser-Spiel), sehen Sie irgendwelche Probleme in meinem Beispiel?
Wenn Sie nicht kümmern, über Charakter-Daten, dann es gibt kein problem mit mit
keydown
, aber in diesem FallkeyCode
gut funktioniert in allen Browsern, so gibt es keine Notwendigkeit, um jede andere Eigenschaft. Der OP hat explizit darauf hingewiesen, dass er/Sie interessiert sich für die Zeichen-Informationen obwohl.InformationsquelleAutor Daniel Vassallo
Müssen Sie die
keypress
event für diese.keydown
undkeyup
kann nicht verwendet werden, zuverlässig zu erhalten, Charakter-Informationen. Eine sehr gute und ausführliche Erklärung von JavaScript wichtigsten Veranstaltungen ist http://unixpapa.com/js/key.htmlInformationsquelleAutor Tim Down
Daniel ' s Antwort ist perfekt, aber wenn Sie möchten, um den tatsächlichen Charakter (nicht der numerische code), können Sie diese Funktion verwenden:
Sehen MDN für mehr info.
InformationsquelleAutor Christopher Scott
In der Ereignisprozedur (vorausgesetzt
e
ist das event-Objekt):Bemerken, wie
fromCharCode
gibt das Zeichen gegeben, ein Unicode-Zeichen-code. Beachten Sie auch, wie ich verwendetcharCode
stattkeyCode
da es mehr richtig, Rücksendung der Zeichen-code, die manchmal unterschiedlich ist, um den Schlüsselcode (Sie wollen den Charakter).charCode
als gut, aber es gibt einige Browser, die es nicht unterstützen: quirksmode.org/js/keys.htmlDies ist eine schwierige situation. Auf der einen Seite, für konforme Browser, keycode immer ist der keycode und charcode ist immer den Unicode-Wert. Auf die nicht-kompatiblen Browsern, charcode nicht vorhanden ist, und keycode variiert zwischen dem Schlüsselcode oder die Unicode-Wert in Abhängigkeit von der Art der Veranstaltung. Wir wollen natürlich, dass die Unicode-Wert, aber das kann niemals gesehen werden, in Schlüsselcode auf kompatiblen Browser. Je nach Kontext der website geschrieben und das Besucher-demografische, ich denke, es ist Zeit sich zu bewegen auf und ignorieren Sie diese offensichtlich nicht-kompatiblen Browsern.
Event-handler für das Ereignis?
charCode
existiert nur inkeypress
Veranstaltungen. Für IE,keyCode
imkeypress
Veranstaltung ist der Zeichen-code und Sie bekommen keine Tastendruck-Ereignisse im IE für nicht druckbare Tasten, so können Sie den Zeichen-codes Recht zuverlässig. Siehe meine Antwort.InformationsquelleAutor Delan Azabani
Schrieb ich eine Bibliothek namens keysight zu übersetzen Tastatur-Ereignisse in die Tasten und Zeichen.
InformationsquelleAutor B T