BaBa: keyboardshortcuts

Beitrag lesen

Hallo,

In einer Webanwendung sollen die User für bestimmte UI-Funktionen userspezifische Keyboardshortcuts vergeben können. E.g. sie können sich das Klicken des Html-Buttons "Senden" auf die Taste "m" legen.

Das erste Problem ist: wie gestallte ich das Formular zum Einstellen dieser. Momentan habe ich pro UI-Funktion ein Inputpärchen. In das eine muss man den Fokus legen und die gewünsche Taste drücken, dann belegt eine JS-Funktion dieses Feld mit dem keyCode und ein danebenstehendes mit dem key (Tastenbeschriftung).

$(this).val(e.keyCode); // show key code (no.) in the input field
var label = e.key;      // derive the key label

Die Sache ist die, dass einige Browser .key nicht unterstützen, e.g. Chrome. Außerdem finde ich die gesamte Vorgehensweise nicht sehr intuitiv.

Alternativ fällt mir noch ein, dass ich einfach ein Input-Select erstellen kann, mit den Labels aller vorhandenen Tasten (und den entsprechenden codes als Werten). Da gibt's dann aber z.B. Probleme mit den Nummerntasten. Der Nummernblock sendet andere Keycodes als die Zahlenreihe. Auch muss ich alle Eventualitäten für Mac abdecken. Vielleicht gibt es ja noch eine ganz elegante Lösung an die ich nicht gedacht haben. Ansonsten würde ich mich über Hinweise zu dieser Lösung freuen.

Die zweite Problematik ist, dass ich im Interface die gewählten Tastenkombis auch wieder hinschreiben möchte! Also, die Buttons bekommen kleine Labels mit den Tastenkombis. Dies natürlich aus der DB gespeist, die die persönlichen Shortcuts beinhalten.

Also: einfach mit den keyCodes arbeiten und serverseitig irgendein mapping erstellen, wie zum Beispiel hier?

Cheers,
BaBa

--
BaBa kommt von Basketball