A voir également:
- Comment faire des ctrl + ... ?
- Comment faire une capture d'écran sur pc avec ctrl ? - Guide
- Ctrl alt fleche ne marche pas ✓ - Forum Bureautique
- Ctrl c ctrl v ne fonctionne plus ✓ - Forum Windows
- Ctrl+maj+n - Forum Windows 10
- Press ctrl+alt+del to restart - Forum Windows
2 réponses
Panth33ra
Messages postés
21073
Date d'inscription
mercredi 8 juillet 2020
Statut
Membre
Dernière intervention
2 décembre 2024
Ambassadeur
1 874
9 juil. 2020 à 16:23
9 juil. 2020 à 16:23
Bonjour !
Sans doute que oui. Quelle est la marque de ton clavier ou est-ce un PC portable ?
Sans doute que oui. Quelle est la marque de ton clavier ou est-ce un PC portable ?
Salut,
qu'appelez vous contrôler le clavier?
que voulez vous faire exactement?
Votre question étant sur le JavaScript cela semble concerner une page web et une page web affichée dans le navigateur.
Hors ctrl+a est déjà un raccourci qui est utilisé(ou pomme+a) dans le navigateur puisque qu'il permet de sélectionner un texte. Cela voudrait dire que vous supprimer une fonctionnalité de base qui est utile à l'utilisateur et c'est jamais une bonne chose.
Pour ce qui est de gérer l'interactivité JavaScript sait faire cela très bien. Ce sont les écouteurs du clavier ou plus généralement la programmation événementielle(un événement déclenche une action ou fonction).
Voici un exemple avec le clavier:
https://www.w3schools.com/jsref/event_key_keycode.asp
et les équivalent de keyCode en touche du clavier:
http://www.javascriptkeycode.com/
Pour déclencher une action/fonction avec une combinaison de touche vous devez utiliser une variable qui va stocker l'état des touches enfoncées.
Si la combinaison de touches correspond alors vous déclencher la fonction.
Concrètement pour ctrl+a
Tout ceci peut être optimisé et adapté à ce que vous voulez faire bien sûr.
Par exemple ici ça va bloquer sur un message d'alerte ou la résolution de la condition tant que les touches sont enfoncées. Il faut désactiver les écouteurs(avec removeEventListener) pour les réactiver une fois l'action exécutée ou améliorer l'algorithme pour pas boucler l'action tant que les touches sont enfoncées.
qu'appelez vous contrôler le clavier?
que voulez vous faire exactement?
Votre question étant sur le JavaScript cela semble concerner une page web et une page web affichée dans le navigateur.
Hors ctrl+a est déjà un raccourci qui est utilisé(ou pomme+a) dans le navigateur puisque qu'il permet de sélectionner un texte. Cela voudrait dire que vous supprimer une fonctionnalité de base qui est utile à l'utilisateur et c'est jamais une bonne chose.
Pour ce qui est de gérer l'interactivité JavaScript sait faire cela très bien. Ce sont les écouteurs du clavier ou plus généralement la programmation événementielle(un événement déclenche une action ou fonction).
Voici un exemple avec le clavier:
https://www.w3schools.com/jsref/event_key_keycode.asp
et les équivalent de keyCode en touche du clavier:
http://www.javascriptkeycode.com/
Pour déclencher une action/fonction avec une combinaison de touche vous devez utiliser une variable qui va stocker l'état des touches enfoncées.
Si la combinaison de touches correspond alors vous déclencher la fonction.
Concrètement pour ctrl+a
/* un objet (en notation JSON) qui contient 2 attributs indiquant l'état de la touche : enfoncée(true) ou relâchée(false)*/ let keyboardInputsStates={ toucheCtrl:false, toucheA:false } /* une fonction qui permet de changer l'état des touches*/ let inputStateChange = function(evt){ console.log('event type = '+evt.type+' , keyCode = '+evt.keyCode); if(evt.keyCode==17){ if(evt.type=='keydown'){ /* la touche ctrl est enfoncée on met sa variable à true, pour le type de l'objet event voir ici : https://www.w3schools.com/jsreF/event_type.asp*/ keyboardInputsStates.toucheCtrl=true; } if(evt.type=='keyup'){ keyboardInputsStates.toucheCtrl=false;/* même chose mais si la touche est relâchée on met sa valeur à false*/ } } //-- code similaire pour la touche A du clavier if(evt.keyCode==65){ if(evt.type=='keydown'){keyboardInputsStates.toucheA=true;} if(evt.type=='keyup'){keyboardInputsStates.toucheA=false;} } } /* ajout des écouteurs d'événement clavier */ /** touche clavier enfoncée*/ document.addEventListener('keydown', function(e){ inputStateChange(e); console.log('States : Ctrl = '+keyboardInputsStates.toucheCtrl+' , a ='+keyboardInputsStates.toucheA); if(keyboardInputsStates.toucheCtrl && keyboardInputsStates.toucheA){ alert('Ctrl+a sont enfoncés'); } }); /** touche clavier relâchée*/ document.addEventListener('keyup', function(e){ inputStateChange(e); console.log('States : Ctrl = '+keyboardInputsStates.toucheCtrl+' , a ='+keyboardInputsStates.toucheA); });
Tout ceci peut être optimisé et adapté à ce que vous voulez faire bien sûr.
Par exemple ici ça va bloquer sur un message d'alerte ou la résolution de la condition tant que les touches sont enfoncées. Il faut désactiver les écouteurs(avec removeEventListener) pour les réactiver une fois l'action exécutée ou améliorer l'algorithme pour pas boucler l'action tant que les touches sont enfoncées.
une autre solution (ce n'est pas limité)serait de détecter l'événement que pour le champ input que vous utilisez puis de perdre le focus lors de la résolution de l'action.
Dans cet exemple on peut voir que l'événement n'est détecté que si le curseur est dans le champ texte:
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_event_key_keycode
Mieux vaut utiliser addEventListener pour bien des raisons que l'attribut(keyPress/keyup) dans la balise directement.
Dans cet exemple on peut voir que l'événement n'est détecté que si le curseur est dans le champ texte:
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_event_key_keycode
Mieux vaut utiliser addEventListener pour bien des raisons que l'attribut(keyPress/keyup) dans la balise directement.
Pas très bien expliqué non plus ...et ça ne l'est toujours pas:
Que voulez vous faire??? exactement et dans quel contexte?
Si vous parlez d'un script serveur ou d'un script shell ou DOS le JavaScript n'a pas vraiment de rapport et si c'est un script pour le navigateur c'est assez spécifique il faut voir direct avec l'extension que vous utilisez(comme seamonkey pour Firefox).
C'est évidemment impossible qu'une page Internet contrôle l'ordinateur de l'utilisateur et plutôt un problème de sécurité si c'est le cas dans un autre contexte.
Quel rapport avec vous appuyant sur son clavier?
On parle bien d'une page web donc de réseau (Internet) et de JavaScript?
Ceci peut vous aider
https://www.commentcamarche.net/infos/25857-charte-de-commentcamarche-net-conseils-d-ecriture/#description-du-probleme
Que voulez vous faire??? exactement et dans quel contexte?
Si vous parlez d'un script serveur ou d'un script shell ou DOS le JavaScript n'a pas vraiment de rapport et si c'est un script pour le navigateur c'est assez spécifique il faut voir direct avec l'extension que vous utilisez(comme seamonkey pour Firefox).
C'est évidemment impossible qu'une page Internet contrôle l'ordinateur de l'utilisateur et plutôt un problème de sécurité si c'est le cas dans un autre contexte.
Quel rapport avec vous appuyant sur son clavier?
On parle bien d'une page web donc de réseau (Internet) et de JavaScript?
Ceci peut vous aider
https://www.commentcamarche.net/infos/25857-charte-de-commentcamarche-net-conseils-d-ecriture/#description-du-probleme