Partage
  • Partager sur Facebook
  • Partager sur Twitter

Reconnaissance des touches fléchées

Sujet résolu
    10 mai 2010 à 20:09:36

    Bonsoir,

    J'ai un problème avec la reconnaissance des touches fléchées du clavier, voici le code :
    <html>
    <head>
    <script language="javascript">
    <!--
    
    function reconnaissance_clavier(e)
    {
    	if (e == 40) // bas
    	{
    
    	}
    	if (e == 39) // droite
    	{
    
    	}
    	if (e == 38) // haut
    	{
    
    	}
    	if (e == 37) // gauche
    	{
    
    	}
    }
    
    -->
    </script>
    </head>
    <body onkeypress="reconnaissance_clavier(event.keyCode)">
    Mon corps
    </body>
    </html>
    


    Avec ça, Firefox et Opéra fonctionnent, mais pas Internet Explorer.

    Ce que je ne comprends pas, c'est qu'en mettant certaines autres valeurs en keycode, comme 52, 56, 54 ou 50 (respectivement les touches 8, 4, 6, 2 sur le pad numérique), j'obtients un peu l'inverse : IE et Opéra fonctionnent, mais pas FF.

    Ma question est donc : Comment faire fonctionner le script avec les 3 navigateurs avec les touches fléchées ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      10 mai 2010 à 20:18:28

      Normalement, il faut utiliser e.which.
      Et sous IE, l'event est pas passé à la fonction, il est dans window.event.
      Donc il faut le chopper.
      function reconnaissance_clavier(e)
      {
      	e = e || window.event;
      	var k = e.which;
      	if (k == 40) // bas
      	{
      
      	}
      	if (k == 39) // droite
      	{
      
      	}
      	if (k == 38) // haut
      	{
      
      	}
      	if (k == 37) // gauche
      	{
      
      	}
      }
      

      PS : Je n'ais pas testé, je le ferais si jamais ça ne fonctionne pas.
      • Partager sur Facebook
      • Partager sur Twitter
        10 mai 2010 à 20:25:26

        Salut,

        Désolé, mais cela ne marche avec aucun des trois navigateurs.

        Je précise au passage que la fonction reconnaissance_clavier() est aussi utilisée de cette façon autre part sur la page : reconnaissance_clavier(40), il faut donc faire en sorte que les deux manières de transmission fonctionnent.

        Merci d'avance.
        • Partager sur Facebook
        • Partager sur Twitter
          10 mai 2010 à 20:26:52

          Utilise onkeydown, ça marche à tout les coups avec =°

          document.body.onkeydown = function(e) {
          	e = e || window.event
          	var key = e.keyCode;
          	
          	if (key == 40) ..
          };
          
          • Partager sur Facebook
          • Partager sur Twitter
            10 mai 2010 à 20:28:31

            Merci beaucoup, résolu ;-)
            • Partager sur Facebook
            • Partager sur Twitter
              10 mai 2010 à 20:49:36

              Pourquoi ça marche pas which ?
              • Partager sur Facebook
              • Partager sur Twitter
                10 mai 2010 à 21:25:26

                IE connait pas which je crois...
                • Partager sur Facebook
                • Partager sur Twitter
                  10 mai 2010 à 21:41:36

                  Ah...
                  Faudra que je teste ça... Pour savoir ce qu'IE gère...
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Reconnaissance des touches fléchées

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown