Frage

Was ist die robusteste Art und Weise eine globale Tastaturkürzel-Handler für eine Webanwendung mithilfe von JavaScript heißt die Veranstaltung zu schaffen (n) sollte ich behandeln und was sollte der Event-Handler (n) angeschlossen werden?

Ich mag so etwas wie das System in Google Mail, die sowohl einzelne Tastendruck Verknüpfungen verarbeiten kann und auch Verknüpfungen mit Zusatztasten z.B. Strg + B usw. Der Code hat in IE 6 sowie modernem Browser arbeiten.

Ich habe den Prototyp Rahmen zur Verfügung zu verwenden, aber nicht jQuery, so bitte keine jQuery-spezifische Antworten!

War es hilfreich?

Lösung

Die HotKey-Bibliothek zur Verfügung in dem LivePipe Kontrollen Paket arbeitet mit Prototype und ist IE kompatibel.

http://livepipe.net/extra/hotkey

Andere Tipps

dachte nur, dass ich eine andere in den Mix werfen würde. Ich gab vor kurzem eine Bibliothek namens Mousetrap. Check it out bei http://craig.is/killing/mice

JimmyP gepostet als Kommentar, aber es verdient eine Antwort für die Abstimmung Zwecke zu sein.

http://www.openjs.com/scripts/events/keyboard_shortcuts/

Was würde ich tun, ist anhängen onKeyUp Ereignisse an den document.body. Dann wurde in diesem Ereignishandler, würde ich die Element.fire Methode ein benutzerdefiniertes Ereignis ausgelöst . Obwohl dieser Schritt optional ist, wird es bei der Entkopplung der Event-Handler von der Aktion helfen, durchgeführt werden, und können Sie die gleichen benutzerdefinierten Ereignishandler verwenden, um von einer Schaltfläche klicken Ereignis sagen.

$(document.body).observe("keyup", function() {
    if(/* key + modifier match */) {
        $(document.body).fire("myapp:mycoolevent");
    }
});

$(document.body).observe("myapp:mycoolevent", function() {
    // Handle event.
});

Später das gleiche Ereignis auf eine Schaltfläche klicken binden:

$(button).observe("click", function() {
    $(document.body).fire("myapp:mycoolevent");
});

Was Modifikatortasten Handhabung angeht Besuche dieser Ressource (sehr alt, aber immer noch anwendbar aussieht) für weitere Hilfe.

Es gibt auch neue genannt JavaScript-Bibliothek jwerty , dann ist es einfach zu bedienen und beruht nicht auf jQuery.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top