Cursorposition in einem Textarea erhalten

8

Ich versuche Autocomplete in einem Textbereich zu implementieren (ähnlich wie Ссылка ).

>

Was ich versuche zu tun ist, wenn ein Benutzer einen bestimmten Satz von Zeichen eingibt (sagen wir einfügen :), dann bekommen sie ein AJAX gefülltes div mit möglichen auswählbaren Übereinstimmungen.

In einem normalen Textfeld ist das natürlich einfach, aber in einem Textbereich muss ich das div an der richtigen Stelle auf dem Bildschirm basierend auf dem Cursor einblenden können.

Kann jemand irgendeine Richtung geben?

Danke, -M

    
Eran Galperin 04.12.2008, 16:34
quelle

4 Antworten

4

Sie können die Einfügemarke mithilfe von document.selection.createRange () abrufen und dann untersuchen, um alle benötigten Informationen (z. B. die Position) anzuzeigen. Siehe diese Beispiele für weitere Details.

    
Eran Galperin 04.12.2008 16:45
quelle
1

Das Implementieren einer Autovervollständigung in einem Textbereich ist nicht so einfach. Ich habe ein jquery-Plugin implementiert, das das tut, und ich musste einen Klon des texarea erstellen, um zu erraten, wo sich der Cursor im Textbereich befindet. Es funktioniert, aber es ist nicht perfekt.

Sie können es hier überprüfen: Ссылка

Ich hoffe, es hilft.

    
Amir 09.03.2011 10:44
quelle
0

eine hässliche Lösung:

für zB: benutze document.selection ...

für ff: Benutze ein Pre-Behind-Textarea, füge Text vor den Cursor ein, setze ein Marker-HTML-Element dahinter (cursorPos) und erhalte die Cursor-Position über dieses Marker-Element

Hinweise: | Code ist hässlich, Entschuldigung dafür | pre und textarea font müssen gleich sein | Opazität wird zur Visualisierung verwendet Es gibt keine automatische Vervollständigung, nur ein Cursor folgt div hier (wie Sie in Textarea eingeben) (ändern Sie es nach Ihren Bedürfnissen)

%Vor%     
daghan dinc 06.08.2009 11:26
quelle
0
%Vor%

Das würde es tun ...:)

    
Popara 22.06.2009 15:59
quelle