Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Insérer un noeud

Envoyé par : Utilisateur anonyme

Date : 10/04/2006 03:40

Bonjour à tous.

J'ai le code suivant dans mon xul:

<hbox id="ici" />

Je cré ensuite un noeud en JS, par exemple comme ceci:

var contenu = "<description>Nombreuses balises</description>";
var parser = new DOMParser ();
var noeud = parser.parseFromString (contenu, "text/xml");

J'aimerais insérer mon noeud dans ma boite. Le code suivant ne fonctionne pas:

document.getElementById("ici").appendChild(noeud);

Quel erreur ai-je commise ? Merci de m'aider.

# Re: Insérer un noeud

Envoyé par : laurentj

Date : 10/04/2006 10:38

Dans ton contenu xml, il n'y a aucune indication du namespace xul. Du coup, le noeud element description crée n'a pas le namespace xul, et donc logiquement, n'est pas interpreté comme un element xul par mozilla, quand tu l'insere dans ton dom.

Tu pourrais aussi passer par l'api dom document.createElementNS etc...

# Re: Insérer un noeud

Envoyé par : Utilisateur anonyme

Date : 10/04/2006 12:03

J'ai modifié mon code comme ceci:

var contenu = "<description xmlns=\"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul\">Nombreuses balises</description>";

Ca ne fonctionne toujours pas malheureusement.

# Re: Insérer un noeud

Envoyé par : laurentj

Date : 10/04/2006 12:08

euh, parseFromString te renvoi un document, pas un element hein (cf la doc ! ;) (tu peux pas ajouter un document en tant que fils d'un element).

il faut donc que tu recupere ensuite l'element racine de ce document (propriété documentElement)

# Re: Insérer un noeud

Envoyé par : Utilisateur anonyme

Date : 10/04/2006 17:01

J'ai modifié mon code comme ceci.

var contenu = "<description xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">Nombreuses  balises</description>";
var parser = new DOMParser ();
var noeud = parser.parseFromString (contenu, "text/xml").documentElement;
document.getElementById("ici").appendChild (noeud);

Ca fonctionne impeccablement. 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.