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 :

Alterner annulation du clic gauche


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut Alterner annulation du clic gauche
    Bonjour

    j'ai développé le code suivant pour faire en sorte d'annuler l'effet du clic gauche sur les éléments d'une page web.
    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
    var stop = function(event)
    {
        event.stopPropagation();
        event.preventDefault();         
    };
     
    var annuler_clic = function(event)
    {    
        if(event.button != 2)
        {
            var eleme = event.srcElement||event.target;
            eleme.addEventListener("click", stop, true);
            eleme.addEventListener("mousedown", stop, true);
            eleme.addEventListener("mouseup", stop, true);                      
        }
    };
     
    window.document.addEventListener("mouseup", annuler_clic, false);
    window.document.addEventListener("click", annuler_clic, false);
    window.document.addEventListener("mousedown", annuler_clic, false);
    Maintenant ce que j'aimerais faire, c'est pouvoir faire un clic gauche dans le menu contextuel (donc rétablir son effet) puis l'annuler juste après quand le menu contextuel disparaît.

    Auriez-vous des idées ?

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    tu te compliques la vie... ce code suffit pour inhiber le clic gauche :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <body onclick="return false">
    <a href="a.htm">clic</a></br>
    <a href="b.htm">clic</a></br>
    </body>
    Lorsque le menu contextuel est affiché, le clic gauche sur ce menu est actif.

    A partir du moment où tu interdis le onclick, inutile d'interdire le mouseup et le mousedown (l'événement onclick = onmousedown+onmouseup)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    Le truc c'est que je bosse sur le code html d'une page web déjà ouverte, je ne peux donc pas modifier les attributs de body à mon gré je suppose.

    Et j'interdisais aussi le onmousup et onmousedown parce que sur certains éléments je me rendais compte que le onclick ne suffisait pas à lui tout seul

    En fait je bosse sur le genre d'application comme Selenium IDE. J'ai une fenêtre logicielle et je bosse sur la page ouverte dans Firefox. (j'utilise donc window.opener pour accéder à cette page)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    "Ta gauche ou ma gauche ?"
    à moins d'être dyslexique, je pense qu'il s'agit du "clic droit"...

    Peut-être qu'une recherche... :
    - "Afficher/Masquer au menu contextuel"
    - "Personnaliser un menu contextuel"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    à moins d'être dyslexique, je pense qu'il s'agit du "clic droit"...
    Tu es dyslexique, je parle bien du clic gauche...

    Peut-être qu'une recherche... :
    - "Afficher/Masquer au menu contextuel"
    - "Personnaliser un menu contextuel"
    Le rapport entre ça et ma question ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    Pour en revenir au problème, je suis parti sur ta piste, Auteur, et j'ai développé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    window.opener.onclick = function(event){
        //.... Du code... //
       return false;
    }
    Ça fonctionne presque comme ça
    J'ai bien le clic gauche annulé et il est bien actif lors du menu contextuel.
    Le problème maintenant c'est que j'ai l'impression que c'est super instable. Ça marche sur certains éléments (le clic gauche annulé) mais pas tous, comme les mails par exemple (dans gmail, hotmail ou aure).

    PS: c'est peut être un indice. Je n'ai pas beaucoup de connaissances sur le sujet mais je pense que ça a un lien avec le troisième paramètre de la fonction "addEventListener", celui concernant le mode capture. Je me souviens qu'avant j'avais réussi à annuler l'effet du clic gauche en mettant ce parmètre à "true". Je sais pas comment indiquer ça à la méthode onclick.
    Je sais pas si je suis assez clair

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    le onclick="return false" fonctionne aussi sur les boutons de type submitou reset.

    Essaye plutôt ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload=function(){
    document.body.onclick = function(){return false};
    };
    il attend le chargement de la page (onload) pour affecter au body un return false sur l'événement onclick().

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    Il me dit que window.opener.document.body est undefined, du coup je peux pas faire ça.

  9. #9
    Invité
    Invité(e)
    Par défaut
    ok ok , je boycotte aussi mon message precedent.
    j'ai lu en diagonale...
    j'ai été abusé par "menu contextuel"
    désolé.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    Il y a pas de soucis

  11. #11
    Invité
    Invité(e)
    Par défaut
    cool.
    l'interet de DVP, est aussi d'apprendre de ses erreurs.
    et d'apprendre, tout court.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    J'aurais difficilement dit mieux

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut
    Je pense avoir réussi à le faire fonctionner, j'ai simplement rajouté des onmousedown et onmouseup en plus du onclick et cette fois ça fonctionne pour tous les éléments.

    Merci ton aide, Auteur

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

Discussions similaires

  1. Popup sur un clic gauche
    Par LoicH dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/08/2005, 20h16
  2. [JTable] Simuler clic gauche après clic droit
    Par Oliveuh dans le forum Composants
    Réponses: 1
    Dernier message: 03/12/2004, 12h35
  3. Popup avec un clic gauche
    Par Jéremy A dans le forum Composants VCL
    Réponses: 7
    Dernier message: 27/02/2003, 22h15
  4. gérer le clic gauche-droite en même temps de la sou
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2002, 22h52

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