Text um den Cursor/Markierung herum ermitteln (im IE)
Blubber21
- javascript
Hallo zusammen,
ich hänge an folgendem Problem, für das ich bis jetzt auch nach einigen Stunden suchen/probieren keine Lösung finden konnte:
Ich möchte in einer Textarea ausgehende von der Markierung bzw. der aktuellen Cursorposition mir den Text links davon anschauen. Ermittelt werden soll, welches Wort davor kommt.
Beispielsatz:
"ALLE VÖGEL SIND SCHON DA"
Steht der Cursor vor dem S von SIND, interessiert mich, ob "VÖGEL" davor steht oder etwas anderes. Abhängig davon will ich dann verschiedene Logik ausführen.
Für den Firefox ist die Lösung recht simpel (beispielhaft):
input = document.forms['formular'].elements['txtTekst'];
var start = input.selectionStart;
var end = input.selectionEnd;
Damit habe ich die Zeichenposition innerhalb der Textarea (start) und kann mich dann rückwärts durchhangeln. Das klappt gut.
Aber wie mache ich das im IE? Habe keine passende Variante dafür finden können.
Ich habe in der IE-Variante mit folgendem rumgespielt:
var range = document.selection.createRange();
range.moveStart('character', -1);
aber das moveStart springt mir, je nach Beispieltext auch aus dem Textarea heraus und dann liefert mir ein range.text plötzlich den Text von Buttons u. ä.
Hat jemand eine Idee, wie man das im IE umsetzt?
Hallo zusammen,
mittlerweile habe ich eine Lösung gefunden um die Cursorpositon auszulesen. Es gibt mehrere Varianten, auch solche die bei mir nicht immer richtig funktioniert haben (http://www.bazon.net/mishoo/articles.epl?art_id=1292) .
Als Code:
txtArea = document.getElementById('txtTekst');
var range = document.selection.createRange();
var drange = range.duplicate();
drange.moveToElementText(txtArea);
drange.setEndPoint('EndToEnd', range);
var currentPosition = drange.text.length - range.text.length;
var endPosition = drange.text.length - currentPosition;
Zu finden unter:
http://triaslama.wordpress.com/2008/06/06/cursor-positions-selected-text-and-a-simple-html-editor/
Gruß
LOBL