Ich arbeite an einem benutzerdefinierten Tokenfield basierend auf Textarea. Die Idee ist ein Textarea mit div Elementen absolut oben positioniert, so dass es aussieht wie sie im Textbereich sind.Wie lege ich eine Rückwärtsauswahl fest?
Es war soweit schmerzhaft, aber ich schaffte es, fast alles zu machen, bis auf eine Sache.
Ist es sogar in Javascript möglich, die umgekehrte Auswahl zu setzen? Wenn Sie einen Cursor irgendwo in der Mitte des Textfelds platzieren, halten Sie die Umschalttaste gedrückt und drücken Sie einige Male den Pfeil nach links, um eine Auswahl zu erhalten. Der schwierige Teil ist, dass es nicht üblich ist - es ist rückwärts (es ist Start vom Ende nach rechts, nicht wie es normalerweise ist). In meinem Textfeld befinden sich Platzhalter, über denen ich meine divs (Token) anzeigen kann. Wenn Sie zu einem von ihnen navigieren, springt der Cursor zum gegenüberliegenden Rand eines Platzhalters, so dass er sich natürlich anfühlt. Wenn Sie die Umschalttaste gedrückt halten und den Platzhalter erreichen, springt er nach rechts und legt eine neue Auswahl fest. Es sieht so aus, als hätten Sie das Token ausgewählt (Sie können Löschen drücken und den ausgewählten Bereich mit dem Token selbst entfernen, was cool ist) . Aber es funktioniert wird nicht möglicherweise, wenn Sie von rechts nach links zu navigieren, da eine neue Auswahl Einstellung wäre es ein nichtumgekehrter machen:
Von links nach rechts Auswahl:
abcde[start]efg[end](token)
[shift]+[right]
abcde[start]efg(token)[end]
[del]
abcde
Von rechts nach links Auswahl
(token)[end]efg[start]abcde
[shift]+[left]
[start](token)abcdeefg[end] //see? it's back to normal
[shift]+[left]
[start](token)abcdeef[end]g //huh?! shift-right moves end point (unexpected)
abcde
Also hier ist Frage: Kann ich eine Auswahl in Textfeld, wo Punkt beginnen würde größer sein als der Endpunkt? Einfach element.setSelectionRange(right, left)
funktioniert nicht in Firefox, andere Ideen?
Sehr gute Frage! – Boldewyn
Das ist sehr interessant, kann ich einen Link bekommen oder ist es Supersecret NASA Zeug? :) –
Es ist immer noch in Arbeit Widget. Aber ich könnte es wahrscheinlich freigeben (es ist Mootools), wenn ich sicher bin, dass es fertig ist. Hier ist ein Bild, um Ihnen eine Idee zu geben, wie es funktioniert: http://img.skitch.com/20091217-89kmqxu8subd5xr8yn1ut7953b.png (es schnüffelt für alle Arten von Ereignissen und versucht, es in einem versteckten Div zu rendern, berechnet dann die Positionen der Token und die Positionierung der Dinge oberhalb von textarea) Es ist eigentlich ein Klon von tokenfield in Mail.app in Mac OS X. Ziemlich verklemmt schließen clone :) – user233603