Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Fonction non appelée 1ere fois sur onpaneload

Envoyé par : primith

Date : 15/12/2009 12:40

Bonjour,

je cherche à résoudre un problème sur une extension qui marchait très bien sur FF2 et qui ne fonctionne plus sur FF3. Globalement, les erreurs proviennent des changements d'API et j'arrive à les résoudre sauf celui-ci.

L'extension a pour but d'insérer un nouvelle "fenêtre" dans les options (il existe déjà les "fenetres" General, Contenu, Vie privée, Sécurité, ...).

Ma fenêtre s'insère correctement. Elle contient un prefpane dans lequel j'affiche un ensemble de parametres spécifiques. Lors du chargement de cette fenêtre, j'appelle la fonction javascript censée afficher les données grâce à l'attribut onpaneload. Or, lors de la première ouverture de la fenêtre, cette fonction n'est pas appelée. Si je ferme la fenêtre, et que je la rouvre la fonction sera appelée et pour toutes les fois suivantes tant que je n'aurai pas fermé FF. Et le problème recommencera à la prochaine ouverture (pas d'affichage des valeurs à la première ouverture, affichage à partir de la seconde).

J'ai eu beau retourner ce problème dans tous les sens, je n'ai pas trouvé la solution.

Le code xul est réparti en deux fichiers :

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://mino/skin/style.css" type="text/css"?>
<!DOCTYPE overlay [
<!ENTITY panneauParametres SYSTEM "panneau-parametres.xul">
<!ENTITY panneauUtilisateurs SYSTEM "panneau-utilisateurs.xul">
<!ENTITY panneauMotDePasse SYSTEM "panneau-mot-de-passe.xul">
]>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <prefwindow id="MailPreferences">
   <prefpane id="paneMINO" label="Agricoll"
             src="chrome://mino/content/preferences/prefs_Thunderbird.xul"/>
 </prefwindow>
 <prefwindow id="BrowserPreferences">
   <prefpane id="paneMINO" label="Agricoll"
             src="chrome://mino/content/preferences/prefs_Firefox.xul"/>
 </prefwindow>
</overlay>

et le deuxième :

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://mino/skin/style.css" type="text/css"?>
<overlay id="paneOverlayMINO"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <script type="application/x-javascript" src="chrome://mino/content/common.js"/>
 <script type="application/x-javascript" src="chrome://mino/content/preferences/association-utilisateur.js"/>
 <script type="application/x-javascript" src="chrome://mino/content/parametres/parametres.js"/>
 <script type="application/x-javascript" src="chrome://mino/content/parametres/visualisation.js"/>
 <script type="application/x-javascript" src="chrome://mino/content/mot-de-passe/mot-de-passe.js"/>
 <prefpane id="paneMINO" onpaneload="alert('ici'); genererVisualisation(document.getElementById('visualisation'));">
   <tabbox flex="1">
     <tabs>
       <tab label="Paramètres" id="tab-mino-parametres"/>
     </tabs>
     <tabpanels flex="1">
       <!-- Paramètres -->
       <tabpanel orient="vertical" id="panneau-paramètres">
         <vbox>
           <description value="Paramètres téléchargés auprès de la plate-forme d'administration :"/>
           <richlistbox id="visualisation" flex="1"/>
           <button image="chrome://mino/skin/refresh.png"
                   label="Rafraîchir paramètres"
                   oncommand="lancerProcessusParametres(true); genererVisualisation(document.getElementById('visualisation'));"/>
           <button image="chrome://mino/skin/bullet-warning.png"
                   label="Paramètres par défaut Agricoll"
                   oncommand="lancerProcessusParametres('forcer', true); genererVisualisation(document.getElementById('visualisation'));"/>
         </vbox>
       </tabpanel>
     </tabpanels>
   </tabbox>
 </prefpane>
</overlay>

J'ai rajouté une alerte sur le onpaneload pour être sur que le problème ne venait pas de la fonction. C'est pareil l'alerte n'apparaît que sur le deuxième appel.

Merci de votre aide.

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.