/ / KeyPress-Störung in Opera - Javascript, Browser, Javascript-Ereignisse, Oper, Tastendruck

KeyPress Fehlfunktion in Opera - Javascript, Browser, Javascript-Ereignisse, Oper, Tastendruck

Ich verwende den folgenden Code, um das Drücken von Benutzern in JavaScript zu erkennen:

$(document).bind("keydown", function (event) {
"use strict";
var keyCode = event.keyCode;

switch (keyCode) {
case "{N}":
doSomething();
break;

default:
break;
}
});

Woher doSomething ist eine zuvor definierte Funktion und {N} ist einer der JavaScript-Zeichencodes.

Es funktioniert ordnungsgemäß in allen gängigen Browsern, aber in Oper Selbst wenn eine Taste gedrückt bleibt, wird nur angerufen doSomething einmal, anstatt es zu tun bis der Schlüssel wird losgelassen. Was kann ich tun, um das zu beheben?


Bearbeiten

Ich habe es mit dem gelöst keypress Ereignis statt keydown (was von Opera nicht gut gehandhabt wird).

Antworten:

0 für die Antwort № 1

Dies ist ein bekannter Fehler, der (endlich!) werde bald repariert. Kurz gesagt, Tastendruckereignisse werden nicht wiederholt, während Tastendruckereignisse auftreten. Hören Sie stattdessen auf Tastendruck, wenn Sie eine Wiederholung wünschen (und sich nicht für Tasten interessieren, die NICHT in allen Browsern wie den meisten Funktionstasten gedrückt werden), sollte dies eine vernünftige Lösung für alle Browser sein.


1 für die Antwort № 2

Opera macht ein Durcheinander, das Keydown-Ereignis wird nicht wiederholt, und Sie können die Standardeinstellung für das Keydown in Opera nicht verhindern. Für mehr http://quirksmode.org/dom/events/