Accueil > Forum > > > > Boucle infinie Element.prototype (.appendChildJsonElement)
Boucle infinie Element.prototype (.appendChildJsonElement)
dimanche 17 août 2008 à 19:35:07 |
Boucle infinie Element.prototype (.appendChildJsonElement)

JoJo738
|
Hello tous ;) Après moult recherches sur le web, n'ayant point trouvé mon bonheur, je me suis mis à programmer ^^ El fait, je cherche à construire à partir de codes Json l'équivalent en Element (afin de m'éviter toute cette tache laborieuse des document.createElement ^^) Et par soucis de propreté de mon code j'ai decidé de l'implémenter directement dans le Element.prototype Et là, j'ai un gros soucis ... tout marche, sauf quand je veux passer à l'element enfant (à savoir create.appendChildJsonElements(json[i]);) ou je me retrouve avec une boucle infinie (ici label (ok)/description (ok)/description (plus ok)/description/.../description/...) Quelqu'un à une idée ?? La fonction : Element.prototype.appendChildJsonElements = function (json) { if( json == 'undefined' ) { throw 'Error !'; } else if( json.constructor == String ) { // element.appendChildJsonElements('TextNode'); this.appendChild(document.createTextNode(json)); } else { if( json[0].constructor != String ) { throw 'The first argument must be a String (name of the Element)'; } //alert('# createElement("' + json[0] + '");'); // The first argument : // ['ELEMENT' \[, Args\]] create = document.createElement(json[0]); for ( i = 1 ; i < json.length ; i++ ) { if( json[i] instanceof String ) { // Text : String format // ['element', 'texte'] create.appendChild(document.createTextNode(json[i])); } else if( json[i] instanceof Array ) { // New Element [Element \[, Args\]] // ['element', ['otherelement']] alert('### createnewelement ' + json[i]); //create.appendChildJsonElements(json[i]); create.appendChildJsonElements(json[i]); } else if( json[i] instanceof Object ) { // Arguments {'name' : 'value'} // ['element', {'name' : 'value', 'name2' : 'value2'}] for( val in json[i] ) { create.setAttribute(val, json[i][val]); } } } this.appendChild(create); } }
r = [ 'description', {'label' : 'text label', 'style' : 'color: red'}, 'Text normal', [ 'label', {'value' : 'text value', 'style' : 'color: green'}, ], [ 'description', {'label' : 'text label', 'style' : 'color: pink'}, ], ]; $('echo').appendChildJsonElements(r);
^^ Je travaille en XUL (XulRunner) Si ma reponse te convient, merci de l'accepter ! 
|
|
lundi 18 août 2008 à 10:46:10 |
Re : Boucle infinie Element.prototype (.appendChildJsonElement)

christophe charron
|
Bonjour, remarque/question certainement très bête car je ne connais rien à l'interaction json xul mais : - Quelle erreur est renvoyée ?
- Comme sait-on que l'on est dans le bons domaine de nom ?
Je suis preneur d'infos sur json et xul car c'est en recherchant ce genre d'info que je suis tombé sur ce post (mais je développe en remote xul) -- Cordialement, Christophe Charron
|
|
lundi 18 août 2008 à 11:43:03 |
Re : Boucle infinie Element.prototype (.appendChildJsonElement)

JoJo738
|
Hello, - Justement, aucune erreur :s C'est juste le code qui tourne en boucle D'ailleurs, cela ne le fait pas si il y a seulement 1 sous-element :S - "Le domande de nom" ? Je n'utilise pas de domaine de nom ... Tu veux dire l'element parent auquel on ajoute l'élement crée ? (on extend element grace à element.prototype / le this. permet de le récupérer) Euh, être en Xul ne change rien, c'est du bon vieux Javascript ^^ (pour ceux qui hésiteraient à répondre  ) Si ma reponse te convient, merci de l'accepter ! 
|
|
lundi 18 août 2008 à 12:05:02 |
Re : Boucle infinie Element.prototype (.appendChildJsonElement)

christophe charron
|
Pour des objets html, en effet, pas besoin de d'utiliser le domaine de nom, mais pour des objets xul, il faut lui indiquer, sinon comment veux-tu qu'il lui attribue les bons attributs/propriétés/méthodes inhérent à xul Donc pour ajouter un treeitem, par exemple, qui n'existe pas encore en html, il faut var treeItem = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","treeitem"); idem pour insérer des éléments SVG par exemple ... Et tu devrais essayer de poser ta question dans le forum de xulfr : [ Lien ]
|
|
lundi 18 août 2008 à 13:44:20 |
Re : Boucle infinie Element.prototype (.appendChildJsonElement)

JoJo738
|
Re, Euh ... non, pas besoin. Mon script fonctionne et pas besoin de spécifier les domaines de nom (j'ai bel est bien un rendu correcte (1er niveau)) ^^ (le domaine de nom étant spécifié dans le window) Apparemment ce serait un problème javascript puisque ma fonction ne fait que traduire des données JS Si ma reponse te convient, merci de l'accepter ! 
|
|
Cette discussion est classée dans : label, element, create, json, appendchildjsonelements
Répondre à ce message
Sujets en rapport avec ce message
pointeur sur element [ par bumblebee ]
Boonjour, Je voudrais savoir comment récupérer un pointeur sur un élément de tableau qui se trouve dans un formulaire g déjà essayer ça mais marche po
Listbox [ par mymic ]
Alors j ai une textBox, en cliquant sur un bouton Ajouter la valeur saisie est ajoutée dans une listbox, imaginez un instant qu un utilisateur landa
Pb avec Drag And Drop [ par Sylvain74 ]
Bonjours tout le monde,voila,j a'ai recupéré un script permettant de faire du drag and drop avec les lignes d'un tableau.Je l'ai adapter pour passer d
Selectionner tout les element d'un select [ par Cestmoi ]
comment puis-je selectionner tout les elements d'une liste de choix en javascript ?Mon controle s'appelle "serv" et la fonction "sel().Merci !
XHTML 1.0 strict et OnClick [ par eijii ]
Bonjour,ces les vacances et depuis quelques jours je m'attèles à refaire de a à z mon pt'it site. Mais j'ai un soucis lorsque je passes mon site avec
onmouseover dans une iframe [ par ourson93 ]
bonjourj'ai un problème de onmouseover et onmouseout .je m'explique, j'ai une iframe dans une iframe et dans celle-ci j'ai<a href="A.html" onmouseover
compter le nombre de radio button [ par misterdarth ]
Bonjour,Lors de la saisie d'un formulaire, je cherche à tester certains champs afin de m'assurer que l'utilisateur n'a pas mis n'importe quoi.Dans ce
Acceder au contenu d'un element d'un tableau... [ par Grand Mamamouchi ]
Bonjour ! Pourriez-vous me dire comment je peux acceder au contenu d'un element d'un tableau a partir d'un autre element du meme tableau ? Merci de
recherche dans une listbox [ par patinaroulette ]
salut a tous!!! j'ai besoin d'aide SVPPPP le probleme est le suivant : j'ai un champ de saisie et une liste box et lorsque je tape une serie de let
selectionné une element dans liste deroulante [ par flammeon ]
bonjour j'aimerai savoir comment faire pour selectionné un item dans une liste deroulante.
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|