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 :

Intercepter une touche (Firefox)


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Touriste en programmation
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Touriste en programmation
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Par défaut Intercepter une touche (Firefox)
    Bonsoir,

    Depuis la dernière mise à jour de Firefox (9.01), j'ai un petit script qui me rendait grand service qui ne marche plus. Je suppose que le code ne doit pas être bien propre...

    J'ai un site web (en php /MySQL) de photos. Si je veux commenter les infos de l'une d'elles, je clique dessus, et un pop-up de menu s'affiche :
    - Touche X : supprimer
    - Touche C : modifier le commentaire
    - Touche I : modifier les infos
    etc, etc.

    Ce qui me permet d'une simple frappe d'accéder à la page voulue pour l'action donnée, ce qui est beaucoup plus rapide que d'aller cliquer sur un lien avec la souris. Si je tape une touche qui n'est pas dans la liste, ça ferme le pop-up.

    Voici le code que j'utilisais pour ça ($jpkget correspond au nom du fichier .jpg):
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <HTML>
    <HEAD>
    ...
    <?php 
    echo "
            <SCRIPT type=\"text/javascript\">
    
            function touche(e){
                    if (window.event)
                    {
                            touche=window.event.keyCode;
                    }
                    else
                    {
                            touche=e.which;
                    }
    
                    if (touche == 120) {location.href=\"ecm.php?valid=supprime&jpk=".$jpkget."\";}
                    else if (touche == 111) {location.href=\"ecm.php?valid=infos&jpk=".$jpkget."\";}
                    else if (touche == 118) {location.href=\"ecm.php?valid=vt&jpk=".$jpkget."\";}
                    ...
                    else {window.close();}
            }
            </SCRIPT>";
    ?>
    </HEAD>
     
    <BODY OnKeyPress="touche(e);" OnBlur="window.close();">
     
    <B>I</B> - Modifie infos<BR />
    <B>X</B> - Supprime<BR>
    ...
     
    </BODY>
    </HTML>
    Désormais, quand j'appuie sur une touche, plus rien ne se passe.
    Est-ce que l'événement OnKeyPress n'est plus valable ? ou non attribuable à la balise BODY ? ou le problème vient d'ailleurs ?

    Merci pour votre aide...

    BM

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    essaye avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnKeyPress="touche(event);"
    Et renomme ta fonction ou ta variable touche, ce sont deux chose différente avec le même nom... donc ça aide pas le navigateur
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre averti
    Homme Profil pro
    Touriste en programmation
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Touriste en programmation
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Par défaut
    Merci pour ton aide.

    J'ai modifié ma balise d'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnKeyPress="fntouche(event);"
    J'ai renommé la fonction en fntouche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function fntouche(event){
    et corrigé dans la ligne 15
    et... ...ça ne marche toujours pas.

    Pourtant, si je place mon OnKeyPress sur une balise <INPUT>, et que je tape (sur la page web) à l'intérieur de ce contrôle formulaire, ça marche nickel.

    Tout se passe comme si la balise <BODY> n'acceptait pas cet événement. J'ai essayé sur un <DIV>, aussi, et ça marche pas plus.
    ...Pourtant, si j'en crois cette page du W3, ça devrait...

    J'ai aussi essayé ce code, sans succès : https://developer.mozilla.org/en/DOM/event.which

    Je cherche, je cherche,... mais c'est pas concluant...

    BM

  4. #4
    Membre averti
    Homme Profil pro
    Touriste en programmation
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Touriste en programmation
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Par défaut
    Bon, je n'ai rien touché, et ça marche à nouveau,...

    ...depuis une nouvelle mise à jour de FF, il me semble
    (personne n'est parfait ! )

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 204
    Par défaut
    Bonjour,
    Citation Envoyé par BMATH Voir le message
    Bon, je n'ai rien touché, et ça marche à nouveau,...

    ...depuis une nouvelle mise à jour de FF, il me semble
    (personne n'est parfait ! )
    effectivement, et merci du retour.
    Citation Envoyé par https://developer.mozilla.org/en/DOM/event.which
    Note: The above example code fails in Firefox 9 due to bug 696020.

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

Discussions similaires

  1. intercepter une touche clavier, c pourtant simple
    Par xoco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 26/11/2008, 15h50
  2. Comment intercepter une touche clavier avec un projet GUI
    Par guitz2fr dans le forum Débuter
    Réponses: 12
    Dernier message: 24/06/2008, 21h50
  3. Intercepter une touche Quick Report
    Par platoon64 dans le forum Delphi
    Réponses: 2
    Dernier message: 03/08/2006, 17h33
  4. Réponses: 5
    Dernier message: 26/06/2006, 17h47
  5. Intercepter une touche
    Par fredero dans le forum Langage
    Réponses: 15
    Dernier message: 05/06/2005, 15h45

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