Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Js,

Envoyé par : Utilisateur anonyme

Date : 11/04/2006 14:49

Je tourne en rond depuis un moment avec javascript et addEventListener.

Le code ci-dessous ajoute dynamiquement un bouton dans <window> et tout marche très bien (merci le wiki). Mais dès que j'ajoute la ligne "this.button.addEventListener( "command", this.fncHello(), true );" alors rien ne fonctionne comme attendu et deux phénomènes apparaissent :

1) La fonction/methode fncHello est appellé lors de onload ( alors que ce n'est pas souhaite .... je souhaite seulement passer dans cette fonction quand l'utilisateur clique réellement sur le bouton et non pas quand j'ajoute un listener sur le button).

2) Dans la console javascript s'affiche "Erreur : uncaught exception: null"

Je ne comprend pas le probleme. Je balaye le wiki et le forum en long et en large et je ne trouve pas de réponse. J'ai testé sous Win et Linux :: même problème. Je reste disponible pour des compléments d'informations.

Merci à celui qui peut m'aider ou éclairer ma lanterne.

Alban

PS :: Je souhaite conserver l'utilisation d'un objet javacript pour faciliter le transfert de C++ vers xul/javascript.

<window 
	id="main"
	onload="
			var x=new classX();
			x.init();
		" 
	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
	<script>
	
		function classX()
		{
			this.init = function()
			{
				this.main = document.getElementById("main");	
				
				this.button = document.createElement("button");
				this.button.setAttribute("label","Un bouton");
				this.main.appendChild(this.button);
				
				this.button.addEventListener( "command", this.fncHello(), true );
			}		
			
			this.fncHello = function(event)
			{
				alert('hello world');
			}		
			
		}
		
	</script>
</window>

# Re: Js,

Envoyé par : Eric

Date : 11/04/2006 15:29

Essaye

this.button.addEventListener( "command", this.fncHello, true );

# Re: Js,

Envoyé par : Utilisateur anonyme

Date : 11/04/2006 15:38

J'ai mis du temps à comprendre votre réponse ... Ok. En retirant les paranthèses, alors tout fonctionne correctement.

Je suis resté 2 heures coincé sur ce pb. Merci bcp pour votre aide. Alban

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.