Je suis l'un des développeurs de TryAgain, un add-on Firefox, qui affiche une page d'erreur personnalisée lorsqu'un site web ne se charge pas. Il remplace essentiellement netError.xhtml
de Firefox avec une version personnalisée.Le bouton XUL n'apparaît pas
Cependant, j'ai rencontré des problèmes de compatibilité assez terminaux entre 3.0. * - 3.6. * Et Fx4b5. (Une entrée dans netError.dtd a été renommé, ce qui provoque une erreur d'analyse XML dans l'une ou l'autre version.)
Pour résoudre ce problème, je l'ai décidé d'avoir l'extension dynamiquement modifier la page, par opposition à le remplacer complètement. L'un des éléments que j'ai besoin d'ajouter à netError.xhtml
dans Fx3 est un <xul:button>
. Cependant, en ajoutant avec le code suivant, rien n'apparaît à l'écran:
var div = document.getElementById("errorContent");
var btn = document.createElement("xul:button");
btn.setAttribute("label", "Hello world");
btn.setAttribute("oncommand", "alert('Hello world!');");
div.appendChild(btn);
Je vois que sur le Mozilla Developer Center qui there is this note:
Gecko implementation of createElement doesn't conform to the DOM spec for XUL and XHTML documents: localName and namespaceURI are not set to null on the created element. See bug 280692 for details.
Qu'est-ce que cela occasionnerait et comment puis-je Résolvez le?
En outre, comment puis-je exécuter l'événement oncommand
via JavaScript? Document.createElement() n'accepte pas les noms qualifiés.
Avez-vous essayé avec createElementNS (» http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul "," xul: button ")? – lithorus