Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Insérer un noeud dans un autre noeud

Envoyé par : kyfr

Date : 07/12/2005 22:00

Bonjour,

Je voudrais insérer un noeud DOM à l'endroit ou l'utilisateur à placé son curseur (sur un objet document xhtml editable).

Avec Javascript je peux récupérer la position du curseur ou la sélection (avec getSelection), avec DOM parcourir l'arbre (xhtml) et insérer des noeuds entre d'autres noeuds, mais comment insérer un noeud au beau milieu d'un autre noeud ?

Par exemple :

<contenu>voici le {{position_du_curseur}} contenu</contenu>

Donne :

<contenu>voici le <new>nouveau</new> contenu</contenu>

D'avance merci.

Franck.

# Re: Insérer un noeud dans un autre noeud

Envoyé par : laurentj

Date : 08/12/2005 10:41

il faut que tu prennes ton noeud texte, que tu le coupe en deux, et que tu insert ton nouveau noeud entre les deux.

Donc en détails, ici avec un noeud texte (A):

  1. tu recupères le texte de la partie droite
  2. tu crées un nouveau noeud texte (B) avec le texte récupéré
  3. tu changes la valeur du noeud texte A en lui mettant juste la partie gauche du texte
  4. tu insert ton nouveau noeud aprés A
  5. tu insert B aprés ton nouveau noeud

je ne sais plus si on peut récupérer une instance de l'objet éditeur (tu as en effet un objet editeur qui permet de gerer l'édition, voir l'interface nsIEditor). Cet objet propose des méthodes pour faire ce genre d'opération.

# Re: Insérer un noeud dans un autre noeud

Envoyé par : kyfr

Date : 09/12/2005 13:01

Merci pour ton aide Laurent, je me suis finalement orienté vers une balise Editor.

La méthode qui m'intéresse est en fait HTMLDocument.execCommand() qui permet d'encadrer la sélection de l'utilisateur de balises prédéfinies.

Le problème est que dans mon cas, les balises ne sont pas forcément des balises prédéfinies (c'est du XML).

Malheuresement, l'objet XMLDocument ne dispose pas de méthode execCommand() qui permette d'ajouter des balises libres.

Une piste pour me sortir de l'ornière ?

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.