Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Atteindre le navigateur depuis un panneau latéral

Envoyé par : thefab

Date : 15/11/2006 10:02

Bonjour,

Je chercher à atteindre la fenêtre de Firefox depuis mon panneau latéral, ou autre solution plus élégante si vous avez:

J'ai inclus le lecteur multimédia VLC sur la fenêtre principale de Firefox grâce à un overlay, je ne peux pas le placer sur le panneau latéral sinon lorsque je le ferme la lecture s'arrête. Mon problème maintenant c'est que je n'arrive pas à atteindre <window> ou gBrowser depuis mon panneau... J'ai essayer plusieurs variantes du genre: top, parent,... sans succès.

# Re: Atteindre le navigateur depuis un panneau latéral

Envoyé par : thefab

Date : 17/11/2006 12:24

Je suis toujours preneur pour une solution ;-) en attendant je pilote VLC via des observateurs.

# Re: Atteindre le navigateur depuis un panneau latéral

Envoyé par : papy

Date : 24/11/2006 14:41

J'ai eu ce problème la aussi en developant une petite extension pour ajouter une sidebar. Après beaucoup d'acharnement (sur parent, top et autre), j'ai trouvé une solution avec le service WindowMediator

Voila le code que j'utilise depuis la page XUL qui sert de corps pour la sidebar :

var mediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var it = mediator.getEnumerator(null);
var mainWindow = it.getNext();

var gBrowser = mainWindow.getBrowser();

# Re: Atteindre le navigateur depuis un panneau latéral

Envoyé par : thefab

Date : 28/11/2006 09:45

Merci papy. J'avais écarté WindowMediator car je croyais qu'il ne pouvait qu'énumérer les fenêtres mais il y a getMostRecentWindow qui semble correspondre à ce que je cherche.

# [Résolu]: Atteindre le navigateur depuis un panneau latéral

Envoyé par : thefab

Date : 07/12/2006 14:18

Je n'ai pas utilisé getEnumerator() et getNext() car je ne sais pas quelle fenêtre ça me retourne, mais getMostRecentWindow() permet d'obtenir la fenêtre au premier plan et c'est celle qu'il me faut:

var service = Components.classes["@mozilla.org/appshell/window-mediator;1"]
    .getService(Components.interfaces.nsIWindowMediator);
var win = service.getMostRecentWindow("navigator:browser");

Ensuite je peut atteindre VLC que j'avais stocké au chargement de Firefox:

win.vlc;

Merci papy

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.