Envoyé par : huats
Date : 30/09/2005 12:25
Bonjour,
depuis plusieurs jours je bloque sur le probleme suivant : je n'arrive pas depuis mon extension à faire appel aux fonctions javascripts qui la composent.
je m'explique : mon extension s'installe bien et me propose donc une nouvelle entrée dans le menu "Outils" de Firefox (utilisation d'un overlay). Jusque là tout marche bien. C'est là que ça se complique : lorsque je clique sur cette entrée, je fais appel à une fonction javascript (openAjoutRecettes). Mais rien ne se passe... Et un petit tour du coté de la console Javascript me dis : "Erreur openAjoutRecettes is not defined". Mais le problème étant bien sur que cette fonction existe est que j'ai une balise <script> qui doit "inclure" mon fichier contenant les fonctions javascripts dans l'overlay qui rajoute l'entrée du menu.
Alors je me dis qu'il y a un soucis quelque part. Je sais bien que je devrais pouvoir contourner le problème en "embarquant" la fonction JS directement dans le fichier xul contenant l'overlay, mais bon je voudrasi surtout savoir ce que fais mal.
Je vous donne l'arborescence de mon extension:
|- install.rdf |- chrome |- ajoutrecettes.jar
Le contenu du jar étant :
|- content |- ajoutrecettes |- ajoutrecettes.js |- ajoutrecettes.xsl |- ajoutrecettes.xul |- ajoutrecettesOverlay.xul |- contents.rdf
Le fichier install.rdf
<?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>{8729ed28-0ca3-4bde-aa2b-1a348325f576}</em:id> <em:name>Reponses.Net::AjoutRecettes</em:name> <em:version>0.1</em:version> <em:description>Ajouter facilement des recettes de cuisine sur le site http://www.reponses.net/Recettes/</em:description> <em:creator>Christophe Sauthier (christophe@sauthier.com)</em:creator> <em:homepageURL>http://www.reponses.net</em:homepageURL> <em:file> <Description about="urn:mozilla:extension:file:ajoutrecettes.jar"> <em:package>content/ajoutrecettes/</em:package> </Description> </em:file> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.0</em:minVersion> <em:maxVersion>1.5</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF>
Le fichier contents.rdf (contenu dans le jar)
<?xml version="1.0"?> <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
<!-- List all packages supplied by this jar --> <RDF:Seq about="urn:mozilla:package:root"> <RDF:li resource="urn:mozilla:package:ajoutrecettes"/> </RDF:Seq>
<RDF:Seq about="urn:mozilla:overlays"> <RDF:li resource="chrome://browser/content/browser.xul"/> </RDF:Seq>
<RDF:Seq about="chrome://browser/content/browser.xul"> <RDF:li>chrome://ajoutrecettes/content/ajoutrecettesOverlay.xul</RDF:li> </RDF:Seq>
<!-- Package information --> <RDF:Description about="urn:mozilla:package:ajoutrecettes" chrome:displayName="Reponses.Net::AjoutRecettes 0.1" chrome:author="Christophe Sauthier" chrome:authorURL="mailto:christophe@sauthier.com" chrome:name="ajoutrecettes" chrome:extension="true" chrome:description="Ajouter facilement des recettes de cuisine sur le site http://www.reponses.net/Recettes."> </RDF:Description> </RDF:RDF>
Et enfin le fichier xul (celui avec l'overlay) à partir du quel je n'arrive pas à accéder à la fonction openAjoutRecettes():
<?xml version="1.0"?> <overlay id="ajoutrecettesOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="chrome://ajoutrecettes/content/ajoutrecettes.js"> </script> <menupopup id="menu_ToolsPopup"> <menuitem insertafter="devToolsSeparator" label="Reponses.Net::AjoutRecettes" oncommand="openAjoutRecettes();" /> </menupopup> </overlay>
Si quelqu'un a une idée je suis vraiment preneur...
Envoyé par : laurentj
Date : 30/09/2005 12:53
À tout hasard, l'attribut type manquant ?
<script type="application/x-javascript" src="..." />
Envoyé par : huats
Date : 30/09/2005 13:37
J'avais déjà tenté aussi Mais ça n'a rien changé :-(
Envoyé par : laurentj
Date : 30/09/2005 15:30
Je ne vois qu'une solution : il y a une erreur javascript dans ton script.
Regarde dans la console JS, active toutes les options debugs comme indiqué dans le wiki.
Envoyé par : huats
Date : 30/09/2005 15:42
Effectivement : je viens de créer un nouveau fichier js pour remplacer l'existant, en laissant juste une fonction basique (style alert("toto") ) à la place de ma fonction openAjoutRecettes()... Et ça marche...
Je vais donc debugger le JS.
Merci
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.