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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
<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