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 :

Appeler des URL par action sur les touches fléchées du clavier


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    musicien
    Inscrit en
    Avril 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : musicien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 3
    Par défaut Appeler des URL par action sur les touches fléchées du clavier
    Bonjour à tous, au secours !
    Nouveau en JavaScript, je tente de réaliser l'appel de liens par les touches fléchées du clavier. J'ai écrit le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       document.addEventListener('keydown', function(e) {
            if (e.keyCode == 39) {
                e.preventDefault();
                e.stopPropagation();
                window.location.href = 'A20.html';
            } else if (e.keycode == 37) {
                e.preventDefault();
                e.stopPropagation();
                window.location.href = 'A40.html';
            }
        });
    La touche 39 (flèche droite) fonctionne à merveille.
    Mais hélas la touche 37 (flèche gauche) ne fonctionne pas. J'ai beau tourner le problème dans tous les sens pendant des heures, je ne trouve pas. Quelqu'un peut-il m'aider en m'indiquant pourquoi le else if ne fonctionne pas dans ce script ?
    Grand merci par avance,
    Pierre

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Tu mettrais une majuscule à keyCode, le problème disparaîtrait...

  3. #3
    Candidat au Club
    Homme Profil pro
    musicien
    Inscrit en
    Avril 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : musicien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 3
    Par défaut une autre solution plus élégante
    Merci javatwister, ça fonctionne !
    J'ai un peu avancé, et remplacé le "if… else if…else" par switch() qui me paraît plus élégant, ça donne ceci, que je vous livre à toutes fins utiles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    			document.addEventListener('keydown', function (e){
    			var kc = (e.keyCode), prec='A40.html', next='A20.html', main='../photos.html';
    			switch(kc) {
    				case 37:
    					e.preventDefault();
    					e.stopPropagation();
    					window.location.href=prec;
    					break;
    				case 39:
    					e.preventDefault();
    					e.stopPropagation();
    					window.location.href=next;
    					break;			
    				case 38:
    					e.preventDefault();
    					e.stopPropagation();
    					window.location.href=main;
    					break;
    				}
    			});
    ça fonctionne. Merci à tous !
    mspav

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Et si tu veux te passer de variables multiples, tu peux aussi faire ça:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    document.addEventListener('keydown', function (e){
    	const sw={"A40.html":37,"A20.html":39,"../photos.html":38};
    	for(ind in sw){
    		if(e.keyCode==sw[ind]){
    			window.location.href=ind;
    			e.preventDefault()
    		}
    	}
    })

  5. #5
    Candidat au Club
    Homme Profil pro
    musicien
    Inscrit en
    Avril 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : musicien
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2020
    Messages : 3
    Par défaut Merci Javatwister !
    La classe !!! Mais j’ai l’idée de mettre un jour ce code dans un fichier js séparé, et de l’appeler par la commande :
    <script src=“monfichier.js”></script>.
    et alors là j’aurai besoin des trois variables qui seront différentes à chaque page !
    Pour l’instant, je suis super novice et je ne sais pas encore comment regrouper l’appel du fichier js et la déclaration des valeurs des variables. C’est idiot, je sais... mais je n’ai pas encore trouvé la bonne syntaxe.
    J’ai tenté
    <script src=“monfichier.js”>var kc = (e.keyCode), prec='A30.html', next= 'A10.html', main='../photos.html'; </script>.
    Mais sans succès...
    Merci en tout cas pour tes réponses très inspirantes !

Discussions similaires

  1. [Débutant] Gérer des valeurs par défauts sur les propriétés d'un objet
    Par BasicZX81 dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/02/2018, 19h53
  2. Comment gérer des clics sur les touches du clavier:
    Par choko83 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 11/03/2008, 11h15
  3. Lecture des URL par les servlet
    Par axel119 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/09/2007, 19h20
  4. Réponses: 8
    Dernier message: 09/05/2007, 00h35
  5. action sur les touches
    Par max---- dans le forum Allegro
    Réponses: 6
    Dernier message: 10/04/2006, 23h42

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