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 :

Surcharge du clic gauche


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Surcharge du clic gauche
    Bonsoir,

    J’aimerais que vous m’aidiez à réaliser la chose suivante : j’aimerais pouvoir surcharger mon clic gauche de manière à faire la chose suivante. Je voudrais supprimer le comportement standard du clic gauche sur une page web et le remplacer par celui du clic droit. (ouverture du menu contextuel)
    Par exemple quand on va sur gmail et qu’on fait un clic droit sur un mail on a un menu avec « archiver », « supprimer » et « marquer comme non lu ». Or j’aimerais qu’en faisant un clic gauche j’ai le menu contextuel standard.
    Pour l’instant j’ai le code suivant :

    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
     
    var context = function(element)
    {
        var evt = element.ownerDocument.createEvent('MouseEvents');
     
        var RIGHT_CLICK_BUTTON_CODE = 2; // the same for FF and IE
     
        evt.initMouseEvent('contextmenu', true, true, element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, RIGHT_CLICK_BUTTON_CODE, null);
     
        if (element.ownerDocument.createEventObject){
            // dispatch for IE
            return element.fireEvent('onclick', evt)
        }
        else{
            // dispatch for firefox + others
            return !element.dispatchEvent(evt);
        }
    };
     
    var contextmenu = function(Event)
    {
        if(Event.button == 0) //Clic gauche
        {
            var element = Event.srcElement||Event.target;
            context(element);
        }
    };
     
    window.opener.addEventListener("mousedown", contextmenu, false);
    Avec ce bout de code j'ai bien le comportement du clic droit qui vient surcharger le clic gauche mais j'ai 2 problèmes :

    - le clic gauche garde son comportement normal malgré tout
    - je n'ai pas le menu contextuel standard mais le menu spécial de gmail

    Cordialement.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Bonsoir,

    Je doute que ce soit réalisable, et je suis certain que c'est indésirable. Un site web ne devrait pas être en mesure de changer le comportement de clics de souris au sein du navigateur.

  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
    Imaginons que ce ne soit pas réalisable.
    Pourriez-vous me dire comment faire pour annuler l'effet standard du clic gauche et pour afficher un alert à la place par exemple ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Afficher une alert au clic gauche partout sur une page ? Je ne veux pas être mêlé à ça

  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
    Ca m'est complètement égal ce que ça fait. C'est uniquement pour tester la chose, un alert me semble le plus simple à réaliser mais si ça te gêne affiche une image avec des fleurs si tu veux, ou alors démarre la musique de spider cochon je m'en fiche lol

    Le fait est que quand je mets Event.preventDefault(); ça n'a pas d'effet.

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Je le répète, un site web ne devrait pas être en mesure de changer le comportement de clics de souris au sein du navigateur. Peut-être que quelqu'un connaît une astuce pour passer outre, mais pour moi il s'agit d'une mesure de sécurité élémentaire que d'empêcher cela.

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