Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Faq dev

Ceci est la Foire aux questions pour les développeurs. Cette page regroupe les questions et réponses qui reviennent souvent dans les forums ou la mailing-list. N'hésitez pas à compléter cette page.

Général

Je ne sais pas où chercher, ou j'ai du mal à trouver une information
voir la page SeDocumenter

XUL

je réalise une application web en XUL, en utilisant les dtd pour la localisation, cependant Firefox me met l'erreur "entité non définie", pourquoi ?
on ne peut pas utiliser les DTD avec des fichiers XUL qui sont en dehors du chrome.
j'ai mis un gestionnaire d'évènement onload sur ma fenêtre, mais celui-ci est executé plusieurs fois, pourquoi ?
c'est un bug (ou une feature ?) connu de Firefox, quand vous avez des iframes dans votre page, l'évènement load de l'iframe se propageant dans la fenêtre mère. On peut contourner ce problème en mettant :
  onload="if (event.target == document) init();"
  //au lieu de
  onload  = "init();"

Javascript et Xpcom

Je fais appel en javascript a des composants XPCOM (via l'objet Components) et j'ai l'erreur suivante Erreur uncaught exception Permission refusée d'obtenir la propriété ~UnnamedClass.classes. Pourquoi ?
vous devez certainement faire appel à ces objets depuis une page xul qui n'est pas inscrite dans le chrome (une page xul d'un serveur web ou quelque part sur votre disque). Ce qui n'est pas permis pour des raisons de sécurité.
Comment faire pour inclure un script javascript dans un autre script javascript sans utiliser les balises <script> ?
voir http://ljouanneau.com/blog/2005/03/18/40(..)

CSS

;Dans ma feuille de style, j'applique un style sur une balise XUL, mais le style n'est pas pris en compte à l'affichage: Il peut y avoir deux causes. Soit à cause du style -moz-appearance qui est appliqué par défaut, empechant certains styles, et par consequent il faut faire un -moz-appearance:none. Soit à cause du fait que la balise XUL est un XBL incluant ses propres élements XUL anonymes, pour lesquels le style est déjà défini. Il faut donc appliquer le style directement sur ces élements anonymes. Pour savoir quel selecteur CSS employer, il faut aller dans le fichier chrome/toolkit.jar, voir le fichier content/global/xul.css qui vous donnera le binding appliqué, et donc ensuite les css appliquées (voir aussi avec le DOM inspector). ;Dans un menupopup je voudrais ajouter une image devant chaque item: Pour faire cela il faut utiliser la class menuitem-iconic (c'est une class interne donc pas besoin de faire quoi que ce soit dans la css) puis une autre class à laquelle on affectera une image dans la feuille de style.
 //dans le xul
 <menuitem class="menuitem-iconic icon-filenew" label="Nouveau"/>
 //dans la css
 .icon-filenew{list-style-[[image:url(monimage.png);]]}

Problème de cache

je developpe des fichiers dans le chrome, comment faire pour que lors des tests les modifications soient pris en compte, notemment à l'affichage
il faut désactiver le cache XUL et configurer Mozilla/Firefox comme il faut; Voir ConfigurerMozillaPourDevelopper
;J'utilise des RDF distants, mais Firefox ne semble pas prendre en compte les modifications effectués sur les RDF distants ?: Voir la section forcer la mise à jour de sources de données RDF dans SourceDeDonneesRdf.

xmlhttprequest

;dans responseText, je reçois mal les caractères accentuées: la réponse du serveur doit être envoyée par le serveur avec l'encodage UTF-8 (tout est manipulé en UTF-8 en javascript)

Divers

Sous windows, mes composants xbl ne s'affichent plus
vérifiez que le type de fichier de vos fichiers xbl (*.xml ou *.xbl) n'est pas attribué à un programme précis par windows. Auquel cas, supprimez cette association dans les options des dossiers.

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.