Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# xul onload()

Envoyé par : pierrot

Date : 28/03/2005 16:44

salut,

je n'arrive pas à utiliser le onload(), car je voudrais lancer une fontion addListener() dès l'ouverture, mais celle ci ne se lance que dans le cas ci dessous, c'est a dire avec le oncommand="addListener() (click sur un bouton), ce que je voudrais eviter. (les onload ne marchant pas)

  <toolbox id="navigator-toolbox" onload="addListener();">
  <toolbar id="aBox" onload="addListener();" >
       <toolbarbutton label="Start" oncommand="addListener();"/> 
  </toolbar>
  ...
  </toolbox>

merci

# Re: xul onload()

Envoyé par : laurentj

Date : 28/03/2005 20:30

onload ne fonctionne que sur la balise <window>.

# Re: xul onload()

Envoyé par : pierrot

Date : 28/03/2005 22:19

ok c kler

dans ce cas n'y aurait il pas moyen de lancer ma fonction des l'ouverture du navigateur.(je fais une extenion, et j'utilise une <overlay> et pas de <window>)?

merci

# Re: xul onload()

Envoyé par : laurentj

Date : 29/03/2005 15:29

si bien sûr. dans ton script javascript, tu appelle directement ta fonction, en dehors de toute autre fonction. Elle sera executée en même temps que le chargement. Mais attention, pas de manipulation DOM, car les documents ne sont pas encore chargés (les éléments du document n'existent pas encore..)

<script type="application/x-javascript" src="script.js" />

et dans script.js

function foo(){ ... }

 ...
 foo();

# Re: xul onload()

Envoyé par : Utilisateur anonyme

Date : 12/04/2005 13:30

Bonjour, J'ai un fonctionnement à peu près équivalent à réaliser.

Je crée une toolbar comportant un champ de saisie bloqué (par l'attribut "read-only" à true) dont la valeur est mise à jour toutes les trente secondes par un script récupérant le contenu d'un fichier texte distant...

Je souhaite donc executer ce script :

function refresh_titre() {
 document.getElementById("current-song").value = 'Recuperation en cours ...';
 req = new XMLHttpRequest();
 req.open('GET', 'http://urldemonfichierdistant.txt', true);
 req.onreadystatechange = function (aEvt) {
   if (req.readyState == 4) {
     if(req.status == 200)
       document.getElementById("current-song").value = req.responseText;
     else
       document.getElementById("current-song").value = 'Echec !';
     }
   };
   req.send(null);
}

Et le faire executer toutes les trente secondes :

function refresh_auto_titre() {
 refresh_titre();
 setTimeout('refresh_auto_titre()', 30000);  // Refresh Auto 30 secondes
}

Cette fonction est lancée dans le onload() ou dans le fichier javascript, indifféremment...

Mais j'ai donc une manipulation sur des objets qui n'existent pas encore et mon refresh_titre() n'a aucun effet... Comment puis-je procéder ?

# Re: xul onload()

Envoyé par : LAurent

Date : 12/04/2005 15:38

Bon je me suis répondu tout seul.

Au lieu de lancer la fonction refresh_auto_titre() dans le fichier javascript, je regle un

setTimeout('refresh_auto_titre()', 5000);  // Refresh au démarrage 5 secondes

qui est donc appelé au lancement...

Et je modifie l'autre fonction en

function refresh_auto_titre() {
 setTimeout('refresh_auto_titre()', 30000);  // Refresh Auto 30 secondes
 refresh_titre();
}

Où je passe simplement l'appel à la fonction après le timer...

J'ai donc un premier rafraichissement à 5 secondes puis toutes les trente secondes...

# Re: xul onload()

Envoyé par : LAurent

Date : 19/04/2005 19:30

Voilà je complète ici puisque j'ai trouvé une manière un peu plus élégante de faire : Je remplace

setTimeout('refresh_auto_titre()', 5000);  // Refresh au démarrage 5 secondes

par un

window.addEventListener("load", refresh_auto_titre, false);

au même endroit et ma fonction s'éxecute au lancement, simple mais il fallait le trouver

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.