Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 01/07/2008 16:38

Bonjour,

J'aimerais initialiser du code au démarrage de firefox d'une manière propre. Si j'ai bien compris, on peut récupérer des notifications tout au long de l'avancement du démarrage de firefox en utilisant le service Observer.

Voici le code que j'ai mis en place et qui ne fonctionne pas :

Code xul/JS

function initBrowser(){
  var observerService = Components.classes["@mozilla.org/observer-service;1"]
  .getService(Components.interfaces.nsIObserverService);
  observerService.addObserver(initBrowserObserver, "final-ui-startup", false);
  window.addEventListener("unload", function() {
     observerService.removeObserver(initBrowserObserver, "final-ui-startup"); 
  }, false);
}
var initBrowserObserver = {
   observe: function (subject, topic, state) {
   if (topic == "final-ui-startup"){ alert('blah'); }
   }
}
window.addEventListener("load", initBrowser, false);

Si quelqu'un peut m'aider, merci d'avance.

  • Kevin

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : Paul Rouget

Date : 02/07/2008 10:31

Qu'est ce qui ne fonctionne pas ? Y'a un message d'erreur ?

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 02/07/2008 10:35

Non, pas de message d'erreur. Il semble que l'observer soit bien ajouté mais qu'il ne réagisse pas à la notification "final-ui-startup".

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 02/07/2008 10:38

En fait, l'alert "Blah" ne se déclenche pas.

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : Paul Rouget

Date : 02/07/2008 13:47

ha bah oui, c'est normal :)

Tu fais ça dans une window mais cet évennement est envoyé avant la création des fenêtres.

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 02/07/2008 14:18

Ah merci! Mais alors je devrais faire ça dans quoi?

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 02/07/2008 14:28

J'utilise peut-être la mauvaise technique. Ce que je souhaite, c'est pouvoir initialiser une interface dynamique au lancement du browser. Si je la lance directement dans un script, j'obtiens des erreurs car l'interface de firefox n'est pas encore complètement initialisée. Pour l'instant, j'utilise un setTimeout mais je n'aime pas du tout cette méthode, je préfère trouver un moyen propre pour lancer l'initialisation de mon interface dès que celle de firefox est complètement initialisée.

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : Paul Rouget

Date : 02/07/2008 15:57

et l'event load sur un overlay ?

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 02/07/2008 16:23

Je crois que j'avais mal posé le problème et très mal posé ma question.

En fait, j'ai un overlay ajoutant des éléments à l'interface. Prenons l'exemple d'une liste déroulante que j'ajoute à la barre personnelle. Je souhaite initialiser le contenu de cette liste déroulante une bonne fois pour toute et si je le fais dans un script JS placé dans l'overlay, cela ne fonctionne pas car la liste n'est pas encore initialisée. Si j'utilise un setTimeout, cela fonctionne.

Mais comme mentionné avant, je n'aime pas les setTimeout, je trouve que c'est sale. Mais je n'ai peut-être pas le choix.

J'ai ajouté l'initialisation de la liste dans un event load de l'overlay et cela ne fonctionne pas non plus.

En tous cas, je te remercie vraiment de ton aide.

  • Kevin

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : frindsssss

Date : 14/07/2008 01:20

final-ui-startup est censé être à true quand c'est chargé?

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : laurentj

Date : 16/07/2008 12:11

Salut,

il faut enregistrer ton observer au démarrage de Firefox. Il faut donc faire un composant xpcom qui au demarrage, s'enregistrera auprés du category manager dans la category app-startup. Et lors du app-startup, tu pourras enregistrer ton observer.

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : laurentj

Date : 16/07/2008 13:40

# Re: Observer de l'évènement "final-ui-startup"

Envoyé par : demoni

Date : 16/07/2008 13:43

Ahh magnifique! Merci beaucoup!

Je vais regarder ça.

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.