Raccourcis clavier [Résolu]

Signaler
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
-
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
-
Salut ... j'ai un petit pb ...
j'ai récupéré ce code qui permet de bloquer l'usage de certaines combinaisons de touche s... j'aimerai bien le modifier afin de mettre en place des raccourcis clavier ...
par exemple ctrl + R pour placer automatiquement le focus sur un champ de texte ou ctrl + D pour appeler une URL prédéfinie....
en revanche j'ai du mal à voir comment faire ...
quelqu'un aurait il une piste ?
thx
@++

     var DisableKeys = Array(
// BackSpace
// 8,
// Touches F1 à F12
112,113,114,115,116,117,118,119,120,121,122,123
);
var DisableCtrlKeys = Array(
// n
78,
// d
68
);

function bloqueTouche(e) {
    var ie = window.event;
    if (ie){
        e = window.event;
    }

    if(e.ctrlKey) { //Touche Ctrl enfoncée
        for (i=0;i<DisableCtrlKeys.length;i++) {
            if(e.keyCode == DisableCtrlKeys[i]) {
                if (ie) {
                    e.keyCode=0;
                    e.returnValue = false;
                }
                return false;
            }
        }
    }
    for (i=0;i<DisableKeys.length;i++) {
        if (e.keyCode == DisableKeys[i]) {
            if (ie) {
                e.keyCode=0;
                e.returnValue = false;
            }
            return false;
        }
    }
}
document.onkeydown=bloqueTouche;

 </script>

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
bonjour,

ch'tit début, à toi d'adapter à ce que tu veux....

<html>
<head>
<title>page ALC</title>
<script type='text/javascript'>
function touchesSpeciales(ev)
{   var alt      = ev.altKey;
    var shift    = ev.shiftKey;
    var ctrl     = ev.ctrlKey;
    var touche   = ev.keyCode;
    var codeHTML='';
    if (shift)    codeHTML += 'shift + ';
    if (ctrl)     codeHTML += 'ctrl + ';
    if (alt)      codeHTML += 'alt + ';
    if (touche>31)   // à partir de espace
    {  codeHTML += touche+'
';;
       document.getElementById('out').innerHTML += codeHTML;
       // ici, on affiche le "N° de touche", il te reste à tester
       //

cette valeur


et déclencher l'action que tu désires.
    }
}
</script>
</head>

</html>







<hr />




Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
petite précision : ça ne prendra pas le pas sur les
    combinaisons de touches déjà gérées par le navigateur.
<hr />



Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Salut,

Ben il te suffit de modifier la fonction bloqueTouche :

function bloqueTouche(e) {
    var ie = window.event;
    if (ie){
        e = window.event;
    }

    if(e.ctrlKey) { //Touche Ctrl enfoncée
        for (i=0;i<DisableCtrlKeys.length;i++) {
            if(e.keyCode == DisableCtrlKeys[i]) {
                if (ie) {
                    e.keyCode=0;
                    e.returnValue = false;
                }
                return false;
            }
        }
       if (e.keyCode == 78) {   // CTRL + N
          // faire le traîtement pour l'appuie sur CTRL + N
       } else if (e.keyCode == 79) { // CTRL + O
          // faire le traîtement pour l'appuie sur CTRL + O
       }
       // etc.
    }
    for (i =0;i<DisableKeys.length;i++) {
        if (e.keyCode == DisableKeys[i]) {
            if (ie) {
                e.keyCode=0;
                e.returnValue = false;
            }
            return false;
        }
    }
}
______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
on peut aussi utiliser les "accesskey"
    Exemple
<hr />



Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    excellentissime !! merci beaucoup à vous !
ça marche impec !
@+