d'origine j'ai dans un div ce qui suit (inscrit en dur à la main..):
a<br> b<br> c<br> d<br> e<br> f<br> ...
A l'écran, je selectionne avec la souris disons b, c et d. je clique sur mon petit bouton qui declenche la fonction qui va transformer tout ça en :
a<br> <ul> <li>b[</li>] (que je mette les </li> ou pas c pareil, et c bien normal ;)) <li>c[</li>] <li>d[</li>] </ul> e<br> f<br> ...
Pour une liste d'un seul niveau, ça fonctionne sans probleme.
Par contre, si je reselectionne disons b et c dans la liste déjà crée, et que je rapelle ma fonction pour les placer dans une sous liste, le bug apparait :
au lieu d'avoir :
a<br> <ul> <ul> <li>b[</li>] <li>c[</li>] </ul> <li>d[</li>] </ul> e<br> f<br>
je me retrouve avec un truc du genre :
a<br> <ul> <ul> <li>b[</li>] <li>c[</li>] </ul> [4]<li>~[/4] <li>d[</li>] </ul> e<br> f<br>
ou bien (selon comment je selectionne les lignes avec ma souris...) :
a<br> <ul> <ul> <li>b[</li>] <li>c[</li>] </ul> <li>[4]~[/4]d[</li>] </ul> e<br> f<br>
La fonction qui recupere le txt via createRange().text, le transforme via :
soit des replace(...) et donc des expressions regulieres,
soit des split( ... ) et un boucle for qui rajoute les <li> là ou il faut.
(j'ai essayé la seconde technique pour voir si le bug ne venait pas de ma syntaxe de regexp..)
apres ce traitement, si j'affiche le resultat de la transformation avec un alert( mastring ), le code est bon. Mais au final, une fois que ma string est passée dans pasteHTML, j'ai un tilde à l'ecran
