Ich möchte die ausgewählte Textposition mit Javascript erhalten. Zum Beispiel habe
ich einen einfachen Textbereich.
#input-text {
resize: none;
width: 50%;
height: 50px;
margin: 1rem auto;
}
<textarea id="input-text">I am a student and I want to become a good person</textarea>
In meinem Textbereich habe ich einige Texte wie:
"I am a student and I want to become a good person"
Wenn ich aus dieser Zeichenfolge im Textbereich "Gute Person werden" auswähle,
wie kann ich dann die ausgewählte Text- / Zeichenfolgenposition in Javascript ermitteln?
Hier beginnt das ausgewählte Zeichenfolgenzeichen bei 29 und endet bei 49. Die Startposition ist also 29 und die Endposition ist 49
javascript
html
Md. Tahazzot
quelle
quelle
Antworten:
Dies funktioniert für die Textauswahl mit Maus und Tastatur für alle Textbereichselemente auf der Seite. Stellen Sie sicher, dass Sie entweder den Selektor ändern und dort genauer sein und die Kommentare lesen, wenn Sie keine Tastaturauswahl wünschen / benötigen.
quelle
Ich würde onselect event nutzen, um das gleiche zu bekommen.
quelle
quelle
Die Antwort von Caramba hat ziemlich gut funktioniert, aber ich hatte das Problem, dass das Ereignis nicht ausgelöst wurde , wenn Sie einen Text ausgewählt und die Maus außerhalb des Textbereichs losgelassen haben .
Um dies zu lösen, habe ich das ursprüngliche Ereignis in geändert.
mousedown
Dieses Ereignis registriert einmouseup
Ereignis im Dokument, um sicherzustellen, dass es ausgelöst wird, nachdem der Cursor losgelassen wurde. Dasmouseup
Ereignis entfernt sich dann selbst, nachdem es ausgelöst wurde.Dies kann durch Hinzufügen der
once
Option erreicht werden,addEventListener
wird aber in IE11 leider nicht unterstützt, weshalb ich die Lösung im Snippet verwendet habe.quelle
addSelfDestructiveEventListener
!quelle