Don P: IE:TextRange.setEndPoint('SToS'):Nichts, obw. compareEndPoints=1

Beitrag lesen

Hallo,

Nicht, dass ich es 100% verstehen würde, aber ich benutze folgenden aufgeschnappten (und von mir zu Methoden transformierten) Code für editierbare DOM-Elemente:

  
this.getSelectionStart = function() {  
    if (this.createTextRange) {  
        var rg = document.selection.createRange().duplicate();  
        rg.moveEnd('character', this.value.length);  
        if (!rg.text) return this.value.length;  
        return this.value.lastIndexOf(rg.text);  
    } else {return this.selectionStart;}  
};  
  
this.getSelectionEnd = function() {  
    if (this.createTextRange) {  
        var rg = document.selection.createRange().duplicate();  
        rg.moveStart('character', -this.value.length);  
        return rg.text.length;  
    } else {return this.selectionEnd;}  
};  

Damit bekommt das Element die Methoden getSelectionStart und getSelectionEnd, die die Anfangs- und Endposition der Markierung liefern. Vielleicht kannst du damit etwas anfangen. Ob der Code IE-tauglich ist, weiß ich nicht sicher, nehme es aber an.

Ich würde übrigens meine Variable nicht gerade Select nennen. Wie du am Syntaxhighlighting unschwer erkennst, ist Select bereits belegt. So gibt es z.B. die Methode select() für edtierbare Elemente.

Gruß, Don P