Die Tastatureingabe wird nicht ausgelöst, wenn die Tastatureingabe eine Warnung öffnet

Ich habe zwei Ereignisbehandlungsroutinen, eine für das Herunterfahren und eine für das Hochfahren. Der Keydown-Ereignishandler löst eine Warnmeldung aus, dies verhindert jedoch, dass das Keyup-Ereignis ausgelöst wird.

Hier sehen Sie ein sehr einfaches Beispiel:http://jsfiddle.net/boblauer/jaGwT/ Wenn die Tastatureingabe eine Warnung öffnet, wird die Tastatureingabe nicht ausgelöst. Wenn jedoch keine Warnung geöffnet wird, wird die Tastatureingabe ausgelöst. Hier ist der Code von der jsfiddle:

var i = 0;
window.addEventListener('keydown', function(e) {
    if (i++ % 2) alert('down');
    console.log('down');
});

window.addEventListener('keyup', function(e) {
    alert('up');
    console.log('up');
});

Ich habe eine Bibliothek, die das Abhören mehrerer Tastenkombinationen unterstützt (z. B. 'd + f'). Wenn also eine Taste gedrückt wird, muss ich sie zu einer Liste der aktuell gedrückten Tasten hinzufügen und wenn eine Taste losgelassen wird. Ich muss es von der Liste entfernen. Das Problem, zu dem ich laufe, ist, wenn ich möchte, dass eine Warnung angezeigt wird, wenn gleichzeitig d + f gedrückt wird, wird mein Code zum Entfernen dieser Tasten aus der Liste "aktuell gedrückt" nie ausgelöst, da mein Keyup-Handler nie aufgerufen wird .

Ich kann mir keine gute Lösung für dieses Problem vorstellen. Irgendwelche Ideen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage