Détecter la touche ctrl (control)
Bonsoir,
cela fait plusieurs tutos (ici et sur le net) pour me permettre de détecter la touche ctrl, mais je n'arrive pas à en faire fonctionner un seul.
Je voudrais détecter la touche ctrl valable sur toute la fenêtre mais je n'y arrive pas.
Auriez-vous une solution assez simple à appliquer ?
Pour ce code, je voudrais éviter de mettre du code JS dans le body si possible car j'ai un fichier JS externe.
(J'ai opéra et firefox)
Le code trouvé sur la FAQ javaScript par exemple je l'ai adapté comme ça :
Code:
1 2 3 4 5 6 7 8 9 10
| function detectTouche(e){
if(parseInt(navigator.appVersion,10) >=4){
if(navigator.appName == 'Netscape'){ // Pour Netscape, firefox, ...
console.log(String.fromCharCode(e.which)+" "+e.which);
}
else{ // pour Internet Explorer
console.log(String.fromCharCode(e.keyCode)+" "+e.keyCode);
}
}
} |
Et je l'initie avec ça :
Code:
window.onkeydown=detectTouche(event);
Mais quelque soit la touche pressée Opéra affiche undefined à la ligne où se trouve la première console.log().
Le code original dans la FAQ javaScript est celui-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function detectTouche(e){
if(parseInt(navigator.appVersion,10) >=4){
if(navigator.appName == 'Netscape'){ // Pour Netscape, firefox, ...
document.getElementById('zone').value = String.fromCharCode(e.which);
document.getElementById('zone1').value = e.which;
}
else{ // pour Internet Explorer
document.getElementById('zone').value = String.fromCharCode(e.keyCode);
document.getElementById('zone1').value = e.keyCode;
}
}
} |
Avec ce code en appel :
Code:
1 2 3 4
| <body onkeydown="detectTouche(event)">
<input type="text" id="zone" size="30" />
<input type="text" id="zone1" size="30" />
</body> |
Je l'ai adapté car je ne veux pas mettre de code dans le body, car j'ai un fichier externe JS et je veux avoir le code dedans si possible ;)
Dans le code de la FAQ on remarque des guillemets :
Code:
<body onkeydown="detectTouche(event)">
Avec ces guillemets rien ne se passe sur Opéra mais sans guillemets j'ai au moins un message qui m'indique que la touche pressée est indéfinie, donc je l'ai gardé sans guillemets ;)