YES!!!
Cette fois c'est bon!
Un grand grand merci Fremy, tu m'enlèves une sacré épine du pied!!!:mouarf:
Je l'adapte maintenant à mon code et je reviens mettre résolu quand j'ai fini.
Version imprimable
YES!!!
Cette fois c'est bon!
Un grand grand merci Fremy, tu m'enlèves une sacré épine du pied!!!:mouarf:
Je l'adapte maintenant à mon code et je reviens mettre résolu quand j'ai fini.
Ok, ça marche bien maintenant que je l'ai correctement adapté à mon code...:mouarf:
Un dernier point: dans certaines pages, j'ai des formulaires et du coup quand je veux saisir les champs de mon formulaire, il se comporte comme s'il s'agissait d'un raccourci clavier et essaie de me rediriger sur une page (inexistante).
Je ne peux donc plus remplir mes formulaires...:?
Aussi, comme j'ai un grand menu mes raccourcis clavier vont de 0 à 20, or, je n'ai pas le temps de taper le deuxième chiffre que le premier est déjà interprété et que je suis redirigée...
Comment résoudre ce problème?
1/ Demander que ALT soit enfoncée pour démerer la redirection...
Comme ca quand on taprera 1 dans une boite de texte, si ALT n'est pas enfoncée, il n'y aura pas de problème.
2/ Si tu as des menus de supérieure à 9, utilise les lettes :)
('a','b','c','d','e', ...) : ca augmentera ton maximum à 35 (36 + 9)
Je vais améliorer le code et je reposte quand j'ai fini....
Oui, ce serait parfait avec la touche ALT!
Et pour les lettres, en effet, ça me semble un bon compromis.
Merci Fremy :D
Seul changement : Les racourci se font avec 2 caractères obligatoirement.
J'ai essayé avec ALT mais il y avait des incompatibiliés navigateurs et certaines combinaisons étaients réservées (Alt + a : menu afficher)
CCL : Si tu tapes 01 dans tes forms ca va déclancher le changement de page tout de même...
Mais je planche sur une solution...
Code:
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 <html> <body> <script> document.onkeypress_error=false document.onkeypress=function(e) { var Code=false if (e) { if (e.keyCode) { Code=e.keyCode } else if (e.which) { Code=e.which } } if (window.event && (!Code)) { if (window.event.keyCode) { Code=window.event.keyCode } else if (window.event.which) { Code=window.event.which } } if (Code) { window.KeyEvent(Code) // Lance la gestion de l'evenement } else { // Impossible de lire le caractère... if (!document.onkeypress_error) { alert("Votre navigateur n'est pas compatible."); document.onkeypress_error=true; } } return true; } window.KeyEvent_Str=".." window.KeyEvent=function(Code, Alt) { var Char = String.fromCharCode(Code) var OldChar = window.KeyEvent_Str.charAt(1) window.KeyEvent_Str = OldChar + Char if (Links[window.KeyEvent_Str]) { window.location.href=(Links[window.KeyEvent_Str]) } } var Links=new Array(); // Obligatoire !!! // Liste des raccourcis : A génerer par PHP Links['01']='http://www.google.fr' Links['02']='http://www.yahoo.fr' // [...] </script> </body> <html>
Solution trouvée : Si le onkeypress provient d'un input, sa gestion est annulée...
Code:
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
59
60
61
62
63
64
65
66
67
68
69 <html> <body> <input type='texte' /> <script> document.onkeypress_error=false document.onkeypress=function(e) { var Code=false var Src=new Object() if (e) { if (e.keyCode) { Code=e.keyCode Src=(e.srcElement) } else if (e.which) { Code=e.which Src=(e.target) } } if (window.event && (!Code)) { if (window.event.keyCode) { Code=window.event.keyCode Src=(window.event.srcElement) } else if (window.event.which) { Code=window.event.which Src=(window.event.target) } } if (Code) { window.KeyEvent(Code, Src) // Lance la gestion de l'evenement } else { // Impossible de lire le caractère... if (!document.onkeypress_error) { alert("Votre navigateur n'est pas totalement compatible avec ce site... Veuillez le mettre à jour."); document.onkeypress_error=true; return false; } } return true; } window.KeyEvent_Str=".." window.KeyEvent=function(Code, Src) { if (Src.tagName.toUpperCase()=="INPUT") { return false; } var Char = String.fromCharCode(Code) var OldChar = window.KeyEvent_Str.charAt(1) window.KeyEvent_Str = OldChar + Char if (Links[window.KeyEvent_Str]) { window.location.href=(Links[window.KeyEvent_Str]) } return true; } var Links=new Array(); // Obligatoire !!! // Liste des raccourcis : A génerer par PHP Links['01']='http://www.google.fr' Links['02']='http://www.yahoo.fr' // [...] // PS : // ........................... // <a href="http://Links['YA']='http://www.yahoo.fr'" target="_blank">Links['YA']='http://www.yahoo.fr'</a> // Cela aussi est valable. </script> </body> <html>
Super Fremy, ça fonctionne impeccablement bien! :bravo: :lahola: :ccool:
Pile poil ce qu'il me fallait, encore une fois un grand MERCI!
Et si tu as un jour besoin d'un coup de main en php, n'hésite pas! :D
Me revoilà... :P
Alors, maintenant j'aimerai si possible annuler la gestion du onkeypress uniquement pour les input de type texte... :roll:
Code:
1
2
3
4
5
6
7
8 var TabInputs=documents.getElementsByTagName('input') var TabText= new Array() for (i=0;i<TabInputs.length;i++){ if (TabInputs[i].type.toUppercase()=='TEXT'){TabText.push(TabInputs[i])} } for (i=0;i<TabText.length;i++){TabText[i].onmouseover=function(){};}
Lol, merci SpaceFrog, mais je lui ai déjà adapté ma fonction par MP :)
(J'en ai d'ailleurs profité pour ajouter la gestion des TextArea que j'avais ajouté pour moi mais que j'avais omis de lui communiquer)
Pour le code final :
Code:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <html> <body> <input type='texte' /> <textarea></textarea> <script> document.onkeypress_error=false document.onkeypress=function(e) { var Code=false var Src=new Object() if (e) { if (e.keyCode) { Code=e.keyCode Src=(e.srcElement) } else if (e.which) { Code=e.which Src=(e.target) } } if (window.event && (!Code)) { if (window.event.keyCode) { Code=window.event.keyCode Src=(window.event.srcElement) } else if (window.event.which) { Code=window.event.which Src=(window.event.target) } } if (Code) { window.KeyEvent(Code, Src) // Lance la gestion de l'evenement } else { // Impossible de lire le caractère... if (!document.onkeypress_error) { alert("Votre navigateur n'est pas totalement compatible avec ce site... Veuillez le mettre à jour."); document.onkeypress_error=true; return false; } } return true; } window.KeyEvent_Str=".." window.KeyEvent=function(Code, Src) { if (Src.tagName.toUpperCase()=="TEXTAREA" || ( Src.tagName.toUpperCase()=="INPUT" && ( Scr.getAttribute().toUpperCase() == null || Scr.getAttribute().toUpperCase() == "" || Scr.getAttribute().toUpperCase() == "TEXT" ) ) ) { return false; } var Char = String.fromCharCode(Code) var OldChar = window.KeyEvent_Str.charAt(1) window.KeyEvent_Str = OldChar + Char if (Links[window.KeyEvent_Str]) { window.location.href=(Links[window.KeyEvent_Str]) } return true; } var Links=new Array(); // Obligatoire !!! // Liste des raccourcis : A génerer par PHP Links['01']='http://www.google.fr' Links['02']='http://www.yahoo.fr' // [...] </script> </body> <html>
C'est parfait! Un grand merci! :D