Je recherche une bibliothèque Javascript existante, ou mieux encore, un plugin jQuery, qui détecte un combo de touches et génère la chaîne correspondante (par exemple, "ctrl + shift + f"). Cela permet à un utilisateur de configurer une combinaison de touches pour un plugin Google Chrome. Le comportement des préférences de BetterTouchTool (http://www.boastr.de/) est un bon exemple de ce que je je parle. Quelqu'un a-t-il rencontré quelque chose comme ça?

2
Suan 9 déc. 2011 à 09:02

3 réponses

Meilleure réponse

J'ai oublié que j'ai même posé cette question! Après plusieurs mois, j'ai écrit moi-même un plugin qui fait exactement cela =)

http://suan.github.com/jquery-keycombinator/

0
Suan 1 mai 2012 à 05:16

Je pense que quelque chose de ce genre pourrait aider:

document.onkeydown = KeyDownHandler;
document.onkeyup = KeyUpHandler;
var CTRL = false;      
var SHIFT = false;     
var ALT = false;
var CHAR_CODE = -1;

function KeyDownHandler(e) {
    var x = '';
    if (document.all) {
        var evnt = window.event;
        x = evnt.keyCode;
    }
    else {
        x = e.keyCode;
    }
    DetectKeys(x, true);
    DoSometing();
}

function KeyUpHandler(e) {
    var x = '';
    if (document.all) {
        var evnt = window.event;
        x = evnt.keyCode;
    }
    else {
        x = e.keyCode;
    }
    DetectKeys(x, false);
    DoSometing();

}
function DetectKeys(KeyCode, IsKeyDown) {
    if (KeyCode == '16') {
        SHIFT = IsKeyDown;
    }
    else if (KeyCode == '17') {
        CTRL = IsKeyDown;
    }
    else if (KeyCode == '18') {
        ALT = IsKeyDown;
    }
    else {
        if(IsKeyDown)
            CHAR_CODE = KeyCode;
        else
            CHAR_CODE = -1;
    }
}

function DoSometing() {
    //check for keys here
}

J'espère que ça va être utile

0
Sudhir Bastakoti 9 déc. 2011 à 05:18
$(document).keypress(function(e) {
    alert(
        (e.ctrlKey ? 'ctrl+' : '') +
        (e.altKey ? 'alt+' : '') +
        (e.shiftKey ? 'shift+' : '') +
        String.fromCharCode(e.which).toLowerCase()
    );
});

Cela enregistrera les clés; je ne sais pas comment vous allez empêcher les touches ctrl / alt d'être interprétées.

Prise en charge du navigateur: http://www.quirksmode.org/js/keys.html

0
rkw 9 déc. 2011 à 06:51