bonjour a tous
jusqu'a present je le faisait en string en decantant la chaine formant le code html mais j'aimerais bien le faire un peu plus proprement

voila une selection de texte dans un conteneditable dans une balise peut donner quelques bizarrerie on la deja vu

mon soucis mis a part la creation de balise vides que je gere parfaitement bien j'ai un soucis avec les espaces et/ou "nbsp;" qui sont des childNodes de type 3

je voudrais supprimer que celles la
alors dans une boucle que j'ai limiter a 10 tours je les enleves suf que quelques fois ces childNodes type 3 sont une partie de texte qu'il ne faut bien évidement pas supprimer
et c'est la que ce pose mon soucis comment identifier le texte de ces childNodes type 3
innerHTML donnant undefined ainsi que innerText
quelqu'un aurait une idée
merci du retour

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function selection() {
                   return window.getSelection();
                            }
 
function getrange() {
                      var sel=selection(); 
                     return sel.getRangeAt(0);
                             }
 
function clearSpaceRange(){
           var sel = selection();
        var parent = sel.getRangeAt(0).commonAncestorContainer;
        var range=getrange();
        var selectionhtml=range.cloneContents(); 
        var oSpan = document.createElement("SPAN");
        var oSpan2 = document.createElement("SPAN");
        oSpan.appendChild(selectionhtml);
        if(oSpan.lastChild.innerHTML==""){ oSpan.removeChild(oSpan.lastChild);}//suppression de la balise vide créée par la fermeture de balise dans l'append en cas de selection croisant 2 balises 
 
         alert("|" + oSpan.innerHTML +"|");
 
         oSpan2.innerHTML=oSpan.innerHTML
         alert("voir type  " + oSpan2.childNodes[oSpan2.childNodes.length -1 ].nodeType);//regard sur le dernier child affiche 3 si nodetype 3
 
          for (var i = 0; i < 10; i++) {
             if(oSpan2.lastChild.nodeType===3){ 
                                                                     alert(oSpan2.lastChild.nodeText);oSpan2.removeChild(oSpan2.lastChild);
                                                                     }
                                               }
 
         alert("oSpan2  |" + oSpan2.innerHTML +"|");
 
        //fragment=range.createContextualFragment( oSpan.innerHTML );
 
 
}