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 :

[POO] Conception et AddEvent


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut [POO] Conception et AddEvent
    Bonjour,

    Je suis sur un problème plutôt de conception et j'aimerais savoir si vous pourriez m'aider à le résoudre.

    J'ai une classe qui créer un objet, jusque là tout va bien.

    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
     
    /* Constructor */
    function OASCaller(pos,lang)
    {
    	//Private vars declaration
    	this.OASPositions			= new String();
    	this.OASUrl						=	new String();
    	this.OASLanguage				= new String();
    	this.OASVersion				= new Number();
    	this.OASSitePage				= new String();
    	this.OASRandomNum			= new String (Math.random()).substring (2, 11);
    	this.OASCreatedObject	= new String();
     
    	//Private vars default init
    	this.OASPositions		= pos;
    	this.OASUrl					= this.getOASUrl();
    	this.OASVersion			= this.getOASVersion();
    	this.OASSitePage	= this.getOASSitePage();
    	this.setOASLanguage(lang);
     
    	checkPos = this.checkPositions();
    	if(checkPos)
    	{
    		this.InitEvents();
    	}
    }

    J'essaye alors d'implémenter la fonction AddEvent(Listener) afin de charger des fonctions de mon objet à la fin du chargement de la page.

    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
     
    OASCaller.prototype.InitEvents = function()
    {
    	OASCaller.addEvent(window,'load',this.loadEventsCallBAck);
    }
     
    OASCaller.addEvent = function( obj, type, fn )
    {
    	if (obj.addEventListener)
    		obj.addEventListener( type, fn, false );
    	else if (obj.attachEvent)
    	{
    		obj["e"+type+fn] = fn;
    		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
    		obj.attachEvent( "on"+type, obj[type+fn] );
    	}
    }
    Mon souci est que je ne peux pas mettre la référence this dans mon appel de fonction d'objet dans la call back

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    OASCaller.prototype.loadEventsCallBAck = function()
    {
            this.setBannerInHtmlElement()
    	alert(document.getElementById('Right1'));
    }
    car this.setBannerInHtmlElement() fonctionne mais me renvoi une erreur d'exécution js dans firebug.

    Pour que celà fonctionne je dois appeller cette fonction avec l'instance de mon objet déclaré : myOASCaller.setBannerInHtmlElement().

    Hors je ne peux décemment pas utiliser çà en POO.

    J'espère avoir bien expliqué mon problème.

    En espérant que quelqu'un puisse m'aider.

    Merci beaucoup.

    Yudao.

  2. #2
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    C'est une erreur ou une exception?

    Tu as fais un console.log de this?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut
    Voici le retour dans firebug :

    uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009...

    Yudao.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut
    Bon après multitudes de test, je vois ou çà coince mais je ne connais pas de solution (pb de conception) :

    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    OASCaller.prototype.InitEvents = function()
    {
      this.addEvent(window,'load',this.setBannerInHtmlElement());
    }
    J'ai l'exception et ma fonction est lancé de suite.

    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    OASCaller.prototype.InitEvents = function()
    {
      this.addEvent(window,'load',this.setBannerInHtmlElement); //sans parenthèses
     }
    MA fonction s'éxecute bien en fin de load, mais il ne reconnait plus alors le this.

    Yudao.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut
    En fait je dois récupérer dans une fonction de callback les propriétés et méthodes de mon objet.

    J'aimerais que tout soit fait à l'intérieur de ma classe OASCaller, mais si ce n'est pas possible alors je ferais autrement, mais je coince :d.

    Yudao.

  6. #6
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    C'est normal, c'est les paramètres this est passé de manière implicite, tu dois utiliser la méthode sans paranthèses

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut
    Oui mais ensuite dans ma fonction de call back je n'ai plus accès au this.

    C'est là mon problème

    Yudao.

Discussions similaires

  1. [POO] Conception de beans
    Par mithrendil dans le forum Autres
    Réponses: 2
    Dernier message: 20/12/2007, 15h30
  2. [POO] conception d'un logiciel de dessin vectoriel
    Par rodymary dans le forum VB.NET
    Réponses: 8
    Dernier message: 01/12/2007, 01h33
  3. [POO] Concept général
    Par delphi+ dans le forum Delphi
    Réponses: 5
    Dernier message: 28/02/2007, 16h49
  4. [POO] Conception d'un système de template
    Par iwf-fr dans le forum Langage
    Réponses: 8
    Dernier message: 06/02/2007, 13h29
  5. [POO] conception des classes
    Par poukill dans le forum C++
    Réponses: 229
    Dernier message: 19/07/2006, 08h28

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