ivorysmoker: Fehler bei verschieden formatierten Texten (Fortgeschritten)

Beitrag lesen

Hallo zusammen

Ich habe da noch ein Problem was mich echt fertig macht, daher habe ich mich endschlossen hier einen kleinen Beitrag zu verfassen und hoffe sehr, dass mir jemmand diesbezüglich helfen kann.

Vorwort:
Jedes Wort oder jeder Satz kann formatiert werden, makiert man den selben Abschnitt ist es auch ohne weiteres möglich weitere Attribute hinzuzufügen z.b farbe etc...

Beschreibung des Fehlers:
Auf dem Bild seht Ihr 2 verschieden formatierte Worte, das problem besteht jetzt darin:
Wenn man 2 Wörter oder Sätze makiert die unterschiedlichen formatiert sind, hat meine Funktion ein Problem. Mein erster Gedanke war, dass es möglicherweise mit den Tags was zutuhen hat.

Ein bsp: Makiert man (ein Test) wie auf dem Foto, wäre der String davon der an die unten aufgelistet funktion weiter gegeben wird = ein</px26> <px44>Test

Hier ein Code Schnippsel:

  
                var sel = window.getSelection();  
                //console.log(sel);  
                if(sel == ""){  
                    alert("Bearbeitungs Modus aktiviert: Makieren Sie den gewünschten Text");  
                    return;  
                }  
                alert(sel);  
                /*console.log(sel);  
                return;*/  
                var ersteSelRange = sel.getRangeAt(0);  
  
                if (!ersteSelRange.collapsed) {  
  
                    var startContainer = ersteSelRange.startContainer;  
                    var endContainer = ersteSelRange.endContainer;  
                    //alert("Leider können noch nicht mehrere Zeilen gleichzeitig formatiert werden.");  
                if (startContainer == endContainer) {  
  
                    var posStart = ersteSelRange.startOffset;  
                    var posEnd = ersteSelRange.endOffset;  
                     /*alert('StartPosition'+posStart);  
                     alert('EndPosition'+posEnd);*/  
                    var startContainerText = startContainer.textContent;  
  
                    var ersteSelRangeText = ersteSelRange.toString();  
                    //alert('RegEx Ausgabe: 'regexfirst+regexnext);  
                    startContainer.textContent = startContainerText.substr(0, posStart) + regexfirst + ersteSelRangeText + regexnext +  
                    startContainerText.substr(posEnd);  
                    //alert("Ist die Komplette Zeile: "+ersteSelRangeText);  
  }  
 }  
                //var ausgabe = range.startOffset;  
  
                //var spliterOriginal = OriginalText.substr(0, ausgabe);  
                //alert(spliterOriginal);  
                //var spliter = OriginalText.substr(ausgabe);  
                //alert(spliter);  
                    var AusgabeText = document.getElementById("newest").innerHTML;  
                    var OriginalTextEnd = AusgabeText.replace(/<p>br<[/]p>/g, "<br>");  
                    /*var OriginalTextEnd = OriginalTextEnd.replace(/</g, "&lt;");  
                    var OriginalTextEnd = OriginalTextEnd.replace(/>/g, "&gt;");*/  
                    OriginalTextEnd.trim();  
                    document.getElementById("newest").innerHTML = OriginalTextEnd;  

Jetzt hoffe ich auf gute Ideen, falls Ihr mehr Einblick haben müsst, zöggert nicht mir dies mitzuteilen.

Vielen Dank schon einmal zum voraus!
Grüsse Ivorysmoker