IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Détecter la touche ctrl (control) [Débutant(e)]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut Détecter la touche ctrl (control)
    Bonsoir,
    cela fait plusieurs tutos (ici et sur le net) pour me permettre de détecter la touche ctrl, mais je n'arrive pas à en faire fonctionner un seul.

    Je voudrais détecter la touche ctrl valable sur toute la fenêtre mais je n'y arrive pas.
    Auriez-vous une solution assez simple à appliquer ?

    Pour ce code, je voudrais éviter de mettre du code JS dans le body si possible car j'ai un fichier JS externe.

    (J'ai opéra et firefox)

    Le code trouvé sur la FAQ javaScript par exemple je l'ai adapté comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function detectTouche(e){
    	if(parseInt(navigator.appVersion,10) >=4){
    		if(navigator.appName == 'Netscape'){ // Pour Netscape, firefox, ...
    			console.log(String.fromCharCode(e.which)+" "+e.which);
    		}
    		else{ // pour Internet Explorer
    			console.log(String.fromCharCode(e.keyCode)+" "+e.keyCode);
    		}
    	}
    }
    Et je l'initie avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onkeydown=detectTouche(event);
    Mais quelque soit la touche pressée Opéra affiche undefined à la ligne où se trouve la première console.log().

    Le code original dans la FAQ javaScript est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function detectTouche(e){
        if(parseInt(navigator.appVersion,10) >=4){
            if(navigator.appName == 'Netscape'){ // Pour Netscape, firefox, ...
                document.getElementById('zone').value = String.fromCharCode(e.which);
                document.getElementById('zone1').value = e.which;
            }
            else{ // pour Internet Explorer
                document.getElementById('zone').value = String.fromCharCode(e.keyCode);
                document.getElementById('zone1').value = e.keyCode;
            }
        }
    }
    Avec ce code en appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <body onkeydown="detectTouche(event)">
        <input type="text" id="zone" size="30" />
        <input type="text" id="zone1" size="30" />
    </body>
    Je l'ai adapté car je ne veux pas mettre de code dans le body, car j'ai un fichier externe JS et je veux avoir le code dedans si possible

    Dans le code de la FAQ on remarque des guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onkeydown="detectTouche(event)">
    Avec ces guillemets rien ne se passe sur Opéra mais sans guillemets j'ai au moins un message qui m'indique que la touche pressée est indéfinie, donc je l'ai gardé sans guillemets

  2. #2
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Le message indefined venait du fait que j'avais mis ce code au mauvais endroit (appel de la fonction avant le chargement du document).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onkeydown=detectTouche(event);
    Donc maintenant je n'ai plus de message indéfined par contre je n'ai plus aucun messages :/

    Dernière modif donc qui supprime le message indéfined :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function init(){ // Appelée par window.onload.
    	window.onkeydown=detectTouche(event);
    Mais toujours pas de détection de la touche pressée pour le moment.

  3. #3
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Bonsoir, je voudrais détecter la touche ctrl dans cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( (move)&&(détection de ctrl) ) console.log('ctrl pressée');
    Y a t'il une personne qui pourrait me dépanner ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (event.ctrlKey) {
      alert ('Touche CTRL enfoncée');
    }
    else {
      alert ('Touche CTRL non activée');
    }

  5. #5
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Salut

    Merci NoSmoking !!!

    Comment je pourrais l'appliquer dans mon code ? Car j'ai fait plusieurs essais différents et j'ai chaque fois un message d'erreur différent.

    EDIT : J'ai fait ceci dorénavant et je n'ai plus de message d'erreur mais il ne se passe rien, on dirait que la fonction touches() n'est jamais appelée.

    // détection de la touche "control".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function touches(event){
    	if (event.ctrlKey) {
    	  alert ('Touche CTRL enfoncée');
    	}
    	else {
    	  alert ('Touche CTRL non activée');
    	}
    	var ctrl=event.ctrlKey;
    	return ctrl;
    }
    // Appelée par setInterval.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function test(){
      var move=true;
      // Teste la touche "control" (ctrl).
      if(document.onkeypress){var ctrl=touches(event);}else{var ctrl=false;}
      if ( (move)&&(ctrl) ) console.log('ctrl pressée'); // ici il faudrait que ctrl soit reconnu.
    }
    Appelée par window.onload;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function init(){
       setinterval ("test()",30);
    }
    Ma difficulté vient du fait que je ne sais pas utiliser et où placer le code que tu m'as donné :/

  6. #6
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    J'ai mis à jour le post précédent (ci-dessus)
    Cette fois je n'ai aucun message d'erreur mais il ne se passe rien quand je presse ctrl.
    EDIT : Je viens de mettre un alert('coucou') pour tester, dans la fonction touches(event){} et on dirait que cette fonction n'est jamais appelée en fait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SELECT] multiselection sans utiliser la touche ctrl
    Par Pompil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/05/2005, 10h51
  2. [VB.NET] Touche CTRL
    Par borgfabr dans le forum Windows Forms
    Réponses: 6
    Dernier message: 24/03/2005, 11h36
  3. Problème avec les touches CTRL & FONCTIONS
    Par bidule999 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 03/12/2004, 09h52
  4. Linux : prb des touches CTRL + FONCTIONS...
    Par bidule999 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/12/2004, 09h51
  5. touche ctrl
    Par philou80 dans le forum C++Builder
    Réponses: 1
    Dernier message: 18/11/2004, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo