Re-bonjour à tous
Toujours dans mon bricolage de script bizarroïde, me voilà confronté à une colle.
Suite à ma fonction de parcours (postée ici) j'appelle une fonction en passant en paramètre un noeud texte (objet DOM). Jusqu'ici tout va bien, le problème surviens lorsque la fonction appelée fait son boulot : des remplacements.
Un peu de code simplifié pour éclaircir l'affaire :
ceci, au lieu de m'afficher l'image souhaitée, m'affiche simplement le code de la balise image comme renseignée dans la fonction (et ce n'est pas vraiment le but de la manoeuvre).
Je cherche donc un moyen de remplacer du texte par du code HTML dans un noeud texte.
Logiquement je pensais suivre la méthode suivante :
- trouver la position dans la chaine de mon motif chercher,
- "couper" le TextNode pour en faire 2 : le premier contenant le texte avant le motif à remplacer, le second contenant le texte après le motif.
- Créer mes éléments HTML par la méthode document.createElement() et les insérer entre les deux TextNode
Créer des éléments, ce n'est pas un problème je sais faire, mais couper un noeud texte en deux et insérer des nouveaux noeuds entre les deux TextNode créés : aucune idée de la façon de procéder.
Quelqu'un a-t-il un idée sur la manière de réaliser ce traitement (sans innerHTML) ?
Merci
Modifié par Willmore (07 Nov 2007 - 19:53)

Toujours dans mon bricolage de script bizarroïde, me voilà confronté à une colle.
Suite à ma fonction de parcours (postée ici) j'appelle une fonction en passant en paramètre un noeud texte (objet DOM). Jusqu'ici tout va bien, le problème surviens lorsque la fonction appelée fait son boulot : des remplacements.
Un peu de code simplifié pour éclaircir l'affaire :
function parseBBCode(TextNode) {
TextNode.nodeValue = TextNode.nodeValue.replace(regexp, '<img src="images/x.jpg?" />');
}
ceci, au lieu de m'afficher l'image souhaitée, m'affiche simplement le code de la balise image comme renseignée dans la fonction (et ce n'est pas vraiment le but de la manoeuvre).
Je cherche donc un moyen de remplacer du texte par du code HTML dans un noeud texte.
Logiquement je pensais suivre la méthode suivante :
- trouver la position dans la chaine de mon motif chercher,
- "couper" le TextNode pour en faire 2 : le premier contenant le texte avant le motif à remplacer, le second contenant le texte après le motif.
- Créer mes éléments HTML par la méthode document.createElement() et les insérer entre les deux TextNode
Créer des éléments, ce n'est pas un problème je sais faire, mais couper un noeud texte en deux et insérer des nouveaux noeuds entre les deux TextNode créés : aucune idée de la façon de procéder.
Quelqu'un a-t-il un idée sur la manière de réaliser ce traitement (sans innerHTML) ?
Merci

Modifié par Willmore (07 Nov 2007 - 19:53)