begin process at 2012 02 11 05:10:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > KEYCODE : QUELLE TOUCHE À ÉTÉ PRESSÉE ?

KEYCODE : QUELLE TOUCHE À ÉTÉ PRESSÉE ?


 Information sur la source

Note :
9,75 / 10 - par 4 personnes
9,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Débutant Date de création :08/03/2002 Date de mise à jour :08/03/2002 14:08:50 Vu :54 383

Auteur : Yves

Ecrire un message privé
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

C'est le source de scylla qui m'a inspiré ce qui suit.
Le but est de pouvoir détecter quelle touche est frappée sur le clavier.
L'affichage dans un champs texte en fait un outil de recherche de valeur pour le keycode,
mais n'est pas indispensable pour un script sur le web

Source

  • <script language="JavaScript">
  • function process_keypress() {
  • // si nous avons un évênement clavier
  • if (window.event.type == "keypress" & window.event.keyCode > 0) {
  • // on sauve la valeur dans le champs texte identifié "moi"
  • document.getElementById("moi").value = window.event.keyCode ;
  • }
  • return true;
  • }
  • document.onkeypress = process_keypress;
  • </script>
  • <form name="x" action ="" method="get">
  • <input type="text" id= "moi">
  • </form>
<script language="JavaScript">
function process_keypress() {
// si nous avons un évênement clavier
if (window.event.type == "keypress" & window.event.keyCode > 0) {
        // on sauve la valeur dans le champs texte identifié "moi" 
	document.getElementById("moi").value = window.event.keyCode ;
	}
	return true;
}
document.onkeypress = process_keypress;
</script>
<form name="x" action ="" method="get">
<input type="text" id= "moi">
</form>
 

 Conclusion

limitations:
Ne gère pas les touches de fonction ou de déplacement
Ne fonctionne pas sous Netscape


 Sources de la même categorie

Source avec Zip POUR LES DÉBUTANTS EN JAVASCRIPT par lecurieux41
CALCULER LA DISTANCE ENTRE DEUX ADRESSES DE FORMULAIRE GRÂCE... par nebenobo
Source avec Zip RÉCEPTION DE SMS EN JAVASCRIPT par hhoareau
APPELER, UN NUMÉRO DE TÉLÉPHONE GRÂCE À UNE ICÔNE SUR L'ÉCRA... par Rainbow
Source avec Zip Source avec une capture CSS3 TRANSFORM par kazma

Commentaires et avis

Commentaire de Jackboy le 27/03/2002 02:50:04

Un tutorial ?????? ou sa, sa devrai être dans divers !!!

Commentaire de Yves le 27/03/2002 20:04:39

Dans divers, j'y vois des scripts utilisables tels quel et n'entrant pas dans une autre catégorie.
Ce script est inutile tel quel, par contre il prermet de voir comment utiliser l'évènement onkeypress. Ce n'est donc qu'une information.
Cette section s'appelle tutorial, et non tutorial complet. Je trouve qu'il y a sa place.

Commentaire de gg00xiv le 04/05/2003 04:25:41

c important le 'return true', et si on met 'return false' quest-ce que cela produit ?

Commentaire de Yves le 04/05/2003 12:14:22

Que le résultat de la fonction n'est pas celui attendu. Dans certains cas, ça peut bloquer l'exectution demandée (on click pour un lien par exemple).

Commentaire de pleejulien le 08/06/2003 14:20:14

Ben je vais être embêtant, mais ca aurait été bien complet si tu avais précisé comment on peut gérer dans moi.onkeypress l'évènement document.onkeypress ;)
En fait si je dit ca, c'est parce que je n'y aurrive pas lol
Avec :
function moi_keypress (e) {
    if (e) this.value = e.keyCode;
    else this.value = window.event.keyCode;
};

document.getElementById("moi").onkeypress = moi_onkeypress;
document.onkeypress = document.getElementById("moi").onkeypress;

En fait, dans ce bout de code, moi_keypress() ne s'exécute pas avec this == moi comme je m'y attendais...

Si quelqu'un a un idée qu'il en fasse part ici, ca me permettra à moi de me débloquer et à Yves d'améliorer son source :-)))

Commentaire de pleejulien le 09/06/2003 14:52:09

j'ai finallement trouvé une manière d'associer l'évenement document.onkeypress à moi.onkeypress et celà se fait comme suit :

document.onkeypress = function (e) {document.getElementById('moi').onkeypress(e)};

Commentaire de p2 le 23/06/2005 12:14:35

Bonjour,
Comment fait on pour gérer les touches de déplacement (les touches du curseurs).
Merci d'avance!

Commentaire de p2 le 24/06/2005 10:28:21

En fait, c'est bon j'ai trouvé ce qu'il me fallait (http://www.javascriptfr.com/forum.v2.aspx?ID=376251&post=ok). Merci de votre aide, votre site est génial, on trouve tout ;)

Commentaire de p2 le 24/06/2005 10:28:34

En fait, c'est bon j'ai trouvé ce qu'il me fallait (http://www.javascriptfr.com/forum.v2.aspx?ID=376251&post=ok). Merci de votre aide, votre site est génial, on trouve tout ;)

Commentaire de harry_cover le 22/05/2006 18:29:12

Merci grâce à cela j'ai pu réaliser le prog que je voulais. c'est-à-dire utiliser une touche comme lien. il me reste à le faire avec les fleches directionnelles. si quelqu'un sait ?

Commentaire de p2 le 27/05/2006 12:54:26

Tu peux regarder : http://www.javascriptfr.com/forum.v2.aspx?ID=376251&post=ok

Commentaire de harry_cover le 28/05/2006 15:19:49

je vais essayer. Merci

Commentaire de harry_cover le 30/05/2006 16:16:49

j'ai mis de coté l'utilisation des touches directionnelles car je suis tombé sur un os. en fait mon programme devait par la suite utiliser ma page html pour piloter une voiture télécommandée par bus I2C mais apparemment il y a un bug avec le javascript.

voici mon code :

<html>
<head>
<title>Untitled</title>
</head>
<body>
<script language="JavaScript">
function process_keypress() {
// si nous pressons la touche 8 (code ascii 56)
if (window.event.type == "keypress" & window.event.keyCode == 56)
{
        
document.location.href="voiture?29999"
}

}
document.onkeypress = process_keypress;
</script>

<h3 align="center">Programme de test du clavier</h3>
</body>
</html>

si quelqu'un a une idée?

Commentaire de harry_cover le 12/06/2006 18:08:22

salut!!! en fin de compte ça fonctionne, mais je voudrais pouvoir associer deux touches. faire la touche 8 et 4 en simultanée. j'ai essayé avec keycode==56 && keycode==52 mais apparemment, le keycode refuse les touches simultanées. j'ai donc pensé faire une tempo.
si touche 8 presser
{
    voiture avance
    tempo 1 milliseconde
    si touche 4 presser
    {
         voiture avance et tourne à gauche
    }
}

mais je bloque avec la tempo. si quelqu'un peu m'aider? merci

Commentaire de lueurbleue le 02/07/2006 19:18:04

pour ce faire utilise onkeydown et onkeyup plutot:

onkeypress détecte que tu as pressé une touche. Point barre.

onkeydown indique que tu viens d'enfoncer une touche et onkeyup que tu viens de la relacher:

essaies ceci pour comprendre ou je veux en venir:

<html>
<head>
</head>
<body>
<span id="result"></span>
<script>
UP=false;
DOWN=false;
LEFT=false;
RIGHT=false;
function keyUpdate()
{
code=""
if (UP) code+="En haut<br>";
if (DOWN) code+="En bas<br>";
if (LEFT) code+="A gauche<br>";
if (RIGHT) code+="A droite<br>";
document.getElementById("result").innerHTML=code;
}
function keyManager(e,down)
{
switch(e.keyCode)
{
case 38:
UP=down;
keyUpdate();
break;
case 37:
LEFT=down;
keyUpdate();
break;
case 39:
RIGHT=down;
keyUpdate();
break;
case 40:
DOWN=down;
keyUpdate();
break;
}
}

document.onkeydown=function(e)
{
if(!e) e=window.event;
keyManager(e,true);
}

document.onkeyup=function(e)
{
if(!e) e=window.event;
keyManager(e,false);
}
</script>
</body>
</html>


Il faut remplacer le contenu de keyUpdate par ton gestionnaire de touche après...

Bonne chance... côté serveur tu télécommande ta voiture comment? (en 2 mots parceque ce n'est pas le lieu pour parler côté serveur :p)

Commentaire de harry_cover le 04/07/2006 13:56:10

ok merci

Commentaire de LogansRun le 17/11/2007 06:33:13

function process_keypress() {
// si nous avons un évênement clavier
if (window.event.type == "keypress" & window.event.keyCode > 0) {
alert(String.fromCharCode(window.event.keyCode)); // sous forme compréhensible
}
return true;
}

document.onkeypress = process_keypress;

au cas où ça intéresserait quelqu'un

Commentaire de fafal le 08/05/2008 13:15:30

bizard!!! j'ai copié ton code mais il ne marche pas sous firefox... savez vous ce qu'il faut modifier pour qu'il soit compatible??

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales