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 de Event sous IE


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Par défaut Surcharge de Event sous IE
    Bonjour,

    J'aimerais surcharger l'objet Event par quelques méthodes personnelles. Cependant, cela ne marche pas sous ie.

    Exemple de surcharge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Event.prototype.isLeftClick = function() {
    	if(this.which) {
    		return (this.which == 1);
    	} else if(this.button) {
    		return (this.button == 1 || this.button == 0);
    	}
    	return false;
    }
    Apparemment Event n'est pas pris en charge nativement par IE.
    Quelqu'un aurait une solution pour contourner ce problème ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Par défaut
    J'ai trouvé une solution dont je ne me satisfait pas du tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    elt.onclick = function(e) {
         if(!e) e = window.event;
         for(func as Event.prototype) {
            e[func] = Event.prototype[func];
          }
         e.isLeftClick(); // Ok ca fonctionne
    }
    Cependant, j'aimerais éviter de passer par cette méthode. Je souhaiterais utiliser la fonction attachEvent (pour IE) et addEventListener (pour FF et autres), sans surcharger la fonction à attacher à l'élément.

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    je ne suis pas certain que ce soit ceci que tu cherches ...

    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
    AddEvent: function(a, b, c) {
            try {
                if (a.addEventListener) {
                    a.addEventListener(b, c, false)
                } else if (a.attachEvent) {
                    a.attachEvent('on' + b, c)
                }
                return true
            } catch(err) {
                return false
            }
        },
    	RemoveEvent : function(a, b, c){
    		try {
                if (a.removeEventListener) {
                    a.removeEventListener(b, c, false)
                } else if (a.attachEvent) {
                    a.detachEvent('on' + b, c)
                }
                return true
            } catch(err) {
                return false
            }
    	}
    si tu souhaites étendre les propriétés de event je ne suis pas certain que cela soit possible sans instanciée l'évènement

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 52
    Par défaut
    Merci pour ton aide.

    Cependant, je veux bien instancier l'évènement, mais sans toucher à la fonction "c" de ton exemple.

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    après moult recherche voila :

    http://www.josh-davis.org/node/4

    attention c'est d'un certain niveau de dev javascript

Discussions similaires

  1. Impossible de créer les fonctions Event sous VS2008
    Par alen dans le forum Visual C++
    Réponses: 2
    Dernier message: 30/11/2009, 10h18
  2. Event sous firefox
    Par mondoti dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 31/07/2009, 15h05
  3. surcharge d'opérateurs sous C
    Par subzero82 dans le forum C
    Réponses: 3
    Dernier message: 10/07/2008, 23h18
  4. problème d'event sous X11/Motif
    Par awalter1 dans le forum Linux
    Réponses: 7
    Dernier message: 08/07/2008, 18h44
  5. usage de SDL events sous Linux console
    Par morning_wind dans le forum SDL
    Réponses: 1
    Dernier message: 28/12/2006, 16h54

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