Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Ecrire code xul à partir d'une chaine

Envoyé par : Ludoman

Date : 21/04/2005 18:00

Bonjour,

Auriez-vous une petite idée de comment créer à partir d'une fenetre distante un code xul en passant obligatoirement une chaine de caractere.

Pour ma part j'ai essayé cela: (Sans succes)

xul="<html:p>test</html:p> <html:h1>test</html:h1> (etc...)";
var recup=window.opener.document.getElementById(elemname);
recup.parentNode.createCDATASection(xul));

Comme ma variable "xul" est généré dynamiquement et réécupérer en une chaine, il m'est impossible de faire createElement(car j'ai plusieurs noeuds et des proprietes differentes) ce qui difficile le parsage de la chaine.

Une idée???

# Re: Ecrire code xul à partir d'une chaine

Envoyé par : laurentj

Date : 21/04/2005 18:35

je ne comprend pas trop ce que tu veux faire. Tu veux creer des élements, en XUL, dans l'arbre DOM d'un document distant. C'est ça ? Inserer des balises XUL ?

Déjà, ton createCDATASection, ça te creer une section CDATA xml (inserer du texte tout bete quoi), je ne vois donc pas le rapport avec ce que tu veux faire.

Si tu veux creer des elements DOM à partir de ta chaine, utilise le parser XML tout simplement. l'objet DOMParser. tu obtient donc un objet document, tu en recupere ses fils, et tu les ajoute à ton element recup.

# Re: Ecrire code xul à partir d'une chaine

Envoyé par : Ludoman

Date : 22/04/2005 16:11

Merci laurentj, J'ai pratiquement trouvé:

Code JS de ma page html:

xul="<button id='test1' label='couour' style='height:100px'/> <button id='test2' label='couour' style='height:100px'>";
var parser=new DOMParser();
var resultDoc=parser.parseFromString(xul,"text/xml");

//window.opener refere est ma fenetre xul  
window.opener.document.getElementById('id').parentNode.appendChild(resultDoc.documentElement);

Erreur:

Erreur d'analyse XML : données bizarres après l'élément de document
Emplacement :  chrome://findfile/content/EditWySIWYG.html?elemname=letexte
Numéro de ligne 1, Colonne 58 :
<button id='test1' label='couour'   style='height:1

Si vous avez une idée avant moi! N'hesitez pas! J'ai l'impression qui a un souci au niveau du parser.

Ici cela fonctionne sur une fenetre non distante sans toucher aux fils http://xulplanet.com/tutorials/xulqa/q_p(..)

# Re: Ecrire code xul à partir d'une chaine

Envoyé par : Ludoman

Date : 25/04/2005 09:33

Et voici la solution:

xul="<button id='test1' label='couour' style='height:100px'/> <button id='test2' label='couour' style='height:100px'/>";
xul="<box id='dataBox' xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'>" + xul + "</box>";
var parser=new DOMParser();
var resultDoc=parser.parseFromString(xul,"text/xml");
//alert(resultDoc.documentElement.nodeName);
window.opener.document.getElementById(elemname).parentNode.appendChild(resultDoc.documentElement);

Merci à tous!

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.