Envoyé par : xulien
Date : 17/08/2007 11:03
Bonjour, Un petit problème que je n'arrive pas à résoudre et qui me permettrait de rendre mon développement plus "objet". Est-il possible d'appeler une méthode d'objet depuis une balise xul ? exemple :
<window onload="main()">
<script src="main.js" type="application/x-javascript" /> <script src="tataClass.js" type="application/x-javascript" /> <button label="toto" oncommand="tata.onButtonClick()"/>
</window>
function main() {
tata = new Tata();
}
// Constructeur function Tata() { }
Tata.prototype.onButtonClick = function() {
alert("ca ne marche pas, il ne trouve pas l'objet tata");
}
j'espère avoir été assez clair Merci Xulien
Envoyé par : hhf
Date : 17/08/2007 23:59
Tu devrais testé faire ceci : inverser les deux lignes de chargement de script
dans mains.js
var tata = null; // la variable est explicitement declaré global function main() { tata = new Tata(); }
mais pour moi tu devrais faire ceci.
Methode 1)
Au lieu de creer un constructeur pour un object que tu va instancier qu'une seul fois (je presume) tu fais une instance avec les methodes necessaire directement. tu evitera la fonction sur le onload :
var tata = { property : 5, onButtonClick : function(event) { }, zzzzzz : null }
note les "," à chaque methodes ou property de l'instance, et l'absence de "," à la derniere.
Attention ici , ce sont des methodes d'instances. Si tu veux faire des methodes statics, tu dois utiliser cette syntaxe :
Methode 2)
function Tata() { } Tata.staticProperty = 5; Tata.staticMethode = function(arg) { }; Tata.onButtonClick = function(arg) { };
Bien sur dans ce cas l'apelle sur le bouton se fera comme ceci :
<button label="toto" oncommand="Tata.onButtonClick()"/>
Voila 2 methodes pour je pense dans ton cas obtenir fonctionnelement le meme resultat. Meme si c'est tres different. Pour ma part j'utilise la methode 1
Voila si tu as des question ...n'hesite pas
Envoyé par : xulien
Date : 20/08/2007 09:48
ok super ca répond parfaitement à ma question, merci beaucoup !!!
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.