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

Beitrag lesen

hi,

[...] ich benutze folgenden aufgeschnappten (und von mir zu Methoden transformierten) Code für editierbare DOM-Elemente[...]

Nein, dies war eigentlich nicht das, was ist wollte: Ich will nicht die Position auslesen, sondern etwas anderes:

Nach jedem Tastendruck justiere ich die Eingaben nach. Doch nach jeder Justierung wird der Zeiger ans Ende des Editorelements gesetzt. Ich will aber, dass der Zeiger an der gleichen Position beleibt, wo er vor der Justierung war.
Dazu habe ich mir folgede Variante überlegt:
  1. Auselesen der Selection bzw. der Zeigerposition durch document.selection
  2. Nachjustieren
  3. Durch setEndPoint wieder zur Position springen, wo auch schon zuvor der Zeiger war.
Allerdings bleibt der Zeiger nach der Justierung trotz 3) am Ende.

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.

Mit document.selection wäre er meines Wissens NUR für den IE geschaffen, da Firefox mit window.getSelection() arbeitet.

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.

Vielen Dank für den Hinweis, werde ich mir zu Herzen nehmen.

lg Nihtan