Wort zeigen, wo die Cursor in der Textarea steht ß?
phosphor
- javascript
Hallo,
Ich habe eine Text in einem Textarea, und ich möchte dass wenn jemand die Cursor auf einem Wort stellt, das Wort in einem Div zeigen.
Also z.b. <textarea> Hallo Welt </textarea>, wenn jemand das Cursor zwischen l und o im Wort hallo stellt, dann wird ausgegeben dass das Cursor im Wort Hallo ist. wie mache ich das im IE ??
Gruß
Ich habe eine Text in einem Textarea, und ich möchte dass wenn jemand die Cursor auf einem Wort stellt, das Wort in einem Div zeigen.
Also z.b. <textarea> Hallo Welt </textarea>, wenn jemand das Cursor zwischen l und o im Wort hallo stellt, dann wird ausgegeben dass das Cursor im Wort Hallo ist. wie mache ich das im IE ??
Im Prinzip geht so etwas mit TextRanges.
So wäre es recht einfach:
<script>
window.setInterval(function () {
var range = document.selection.createRange();
range.expand('word');
var wort = range.text.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
document.getElementById("ausgabe").innerHTML = wort;
}, 100)
~~~</script>
<textarea id="ta" rows="10" cols="40">At vero eos et accu-samus et iusto? Odio, dignissimos. ducimus qui bländitiis praeséntium voluptatèm deleniti atque corrupti quos</textarea>
<p>[<span id="ausgabe"></span>]</p>
Aber auch unzuverlässig und fehlerhaft, z.B. wenn der Cursor vorne oder hinten steht, bekommt man den gesamten Text zurück.
Da muss man sich also einen eigenen Mechanismus bauen, der sich ausgehend von der aktuellen Cursorposition mit
range.moveStart('character', -1)
bzw.
range.moveStart('character', 1)
nach vorne bzw. nach hinten tastet und ein Nicht-Wort-Zeichen sucht. Wobei es glaube ich noch schwierig ist, Anfang und Ende der Textarea zu erkennen (ich habe das mal irgendwann aufgegeben).
Vielleicht auch hilfreich:
<http://parentnode.org/javascript/working-with-the-cursor-position/>
Mathias
--
[JavaScript-Erweiterung für das SELFHTML-Forum](http://forum.de.selfhtml.org/js/doku/)
range.moveStart('character', -1)
bzw.
range.moveStart('character', 1)