119 votes

Capture de la combinaison de touches ctrl+z en javascript

J'essaie de capturer ctrl + z en javascript avec ce code :

<html>
<head>
    <title>Untitled Document</title>
</head>
<body>

    <script type='text/javascript'>
        function KeyPress(e) {
            var evtobj = window.event? event : e

            //test1 if (evtobj.ctrlKey) alert("Ctrl");
            //test2 if (evtobj.keyCode == 122) alert("z");
            //test 1 & 2
            if (evtobj.keyCode == 122 && evtobj.ctrlKey) alert("Ctrl+z");
        }

        document.onkeypress = KeyPress;
    </script>

</body>
</html>

La ligne commentée "test1" génère l'alerte si je maintiens le bouton de la souris enfoncé. ctrl et appuyez sur n'importe quelle autre touche.

La ligne commentée "test2" génère l'alerte si j'appuie sur la touche z clé.

Mettez-les ensemble comme à la ligne après "test 1 & 2", et en maintenant la touche ctrl puis en appuyant sur la touche z ne génère pas l'alerte comme prévu.

Quel est le problème avec le code ?

3voto

newguy12121 Points 11
document.onkeydown = function (e) {
    var special = e.ctrlKey || e.shiftKey;
    var key = e.charCode || e.keyCode;
  console.log(key.length);
  if (special && key == 38 || special && key == 40 ) { 
    // enter key do nothing
    e.preventDefault();
  }        
}

voici un moyen de bloquer deux touches, soit les combinaisons de touches shift+ ou Ctrl+.

&& aide avec les combinaisons de touches, sans les combinaisons, il bloque toutes les touches ctrl ou shift.

-2voto

Utilisez ce code pour CTRL + Z . code clé pour Z dans la touche est de 122 et la CTRL + Z est de 26. vérifiez ce code clé dans votre zone de console

 $(document).on("keypress", function(e) {
       console.log(e.keyCode);
       /*ctrl+z*/
       if(e.keyCode==26)
       {
          //your code here
       }
    });

-4voto

10011101111 Points 139

Ce plugin fait par moi peut être utile.

Plugin

Pour utiliser ce plugin, vous devez fournir les codes clés et la fonction à exécuter comme ceci

simulatorControl([17,90], function(){console.log('You have pressed Ctrl+Z');});

Dans le code, j'ai affiché comment effectuer pour Ctrl + Z . Vous obtiendrez une documentation détaillée sur le lien. Le plugin est dans la section Code JavaScript de mon stylo sur Codepen.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X