Bonjour à tous,
Je suis devant un cas un peu tordu ... sachant que je ne suis pas développeur web à la base
Nous avons une appli "métier" couplée à un clavier spécifique.
A cette appli, va se greffer un seconde appli web, mais commandée par le même clavier spécifique.
Mon problème : les flèches haut bas gauche droite sont vues comme des raccourcies par IE (ALT + quelque chose ...)
Je me suis dit qu'avec un peu de javascript, on pourrait "capturer" la combinaison de touche envoyé par le clavier puis ré-affecter la bonne combinaison à la place (je fait peut être complètement erreur ... ).
la config : IE6 ou 7 sur les postes clients.
Je cherche dans un premier temps à capturer le combinaison de touches envoyés par le clavier, mais je bloque déjà à ce niveau !
ci-dessous, mon code ou j'en suis pour l'instant ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> <title>Page de test Javascript</title> <script type="text/javascript"> // --- Appel de la fonction des qu une touche est pressée document.onkeydown = applyKey; // --- Fonction de test du navigateur (si IE) function checkEventObj ( _event_ ){ if (window.event) return window.event; else return _event_; } //Fonction de test évenement et actions retour function applyKey (_event_){ var winObj = checkEventObj(_event_); var CodeTouchePress = winObj.keyCode; var ToucheAlt = winObj.altKey; var ToucheCtrl = winObj.ctrlKey; if (ToucheCtrl) { if (CodeTouchePress != 17) { winObj.keyCode = 0; alert("Touche CTRL "+CodeTouchePress); winObj.returnValue = false; return false; } } else if (ToucheAlt) { if (CodeTouchePress != 18) { winObj.keyCode = 0; alert("Touche ALT "+CodeTouchePress); winObj.returnValue = false; return false; } } else { winObj.keyCode = 0; alert("La touche pressée est : "+CodeTouchePress); winObj.returnValue = false; return false; } winObj.returnValue = false return false; } </script> </head> <body> <div style="font-size:18pt;font-weight:bold;">Page de test pour connaitre les touches ou combinaisons de touches utilisées</div> </body> </html>
Avec ce code, j'arrive à récupérer si les touches ALT ou CTRL sont pressées + le code de la seconde touche ... sur un clavier normal !
Sur mon clavier spécifique, je ne récupère que du ALT+40 (flèche bas) ou ALT+35 (FIN), alors que le code de la touche enfoncé est bien différent (test sur un notepad, j'obtiens biens des caractères différents ...)
Entre les onkeypress, onkeyup et onkeydown, le tout cumulé avec les touches ALT et CTRL, j'avoue que je m'y perd un peu ...
Qu'y a t'il dans mon code qui pourrait me générer le fait que je ne capte que du ALT 40 ou ALT35 sur mon clavier spécifique ?
Merci d'avance aux bonnes âmes du forum
Partager