PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cursorposition in ner Textarea


anti
12.01.2002, 23:53
So leuts nachdem ich nu an diversen Boards keinen Erfolg hatt will ichs hier auchmal probiern. Und zwar brauch ich en Script, das:
Die Aktuelle Cursorposition in nem Textfeld ausliest
ODER:
mir den Wert vor und den Wert nach dem Cursor in ner Variable speichert. Will so ne Art Editor machen. Soll aber nich ganz so kompliziert werden wie der hier im board wenn ma en neues Thema schreibt. Will ja auch nur ein einzelnes wort reinkleben.
so long
antiklein


Felix Kaiser
15.01.2002, 17:52
Naja, mit einem onMousemove Eventhandler könntest du zwar die relative X und Y Position des Mauszeigers bestimmen, aber um zu errechnen welche Zeichen links und rechts davon liegen muss man wissen, wieviele Pixel sind die Zeichen breit und hoch! Diese Information steht dir aber nicht zur Verfügung.

Jedoch eine Chance hast du, wenn du in dem Textfeld die Schriftart FixedSys verwendest. Diese hat fast immer das Format 8x14 Pixel, einzige Ausnahme: Der Anwender hat den Zeichengrad in Windows größer oder kleiner als 96dpi gestellt (Standardwert). Jedoch bei Standardeinstellung kommst du damit weiter:


<html><body>
<script language=&quot;JavaScript&quot;>
function MouseOver()
{
document.forms.Form1.elements.Edit1.value = Math.round(event.offsetX/8)+&quot;:&quot;+(Math.round(event.offsetY/14)-1);
}
</script>
<textarea rows=&quot;25&quot; cols=&quot;80&quot; onMousemove=&quot;MouseOver();&quot; style=&quot;font-family:FixedSys; font-weight:100; font-size:8px&quot;>
Ich bin ein Textfeld :-)
</textarea>
<form name=&quot;Form1&quot;>
<input type=&quot;text&quot; name=&quot;Edit1&quot; value=&quot;&quot; size=&quot;80&quot;>
</form>
</body></html>


Funktioniert mit Internet Explorer. Für Netscape statt offsetX / offsetY einfach layerX / layerY benutzen.

anti
15.01.2002, 18:23
Ich meint das mehr so mit dem TextCursor.. Hier im Board gehts ja auch...
ich blick das ganze nur noch ned so richtig...
dat anti