Quiero obtener la posición de texto seleccionada usando javascript. Por ejemplo,
tengo un área de texto simple.
#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>
En mi área de texto, tengo algunos textos como:
"I am a student and I want to become a good person"
De esta cadena, si selecciono "convertirse en una buena persona" en el área de texto,
¿cómo puedo obtener la posición de texto / cadena seleccionada en javascript?
Aquí el carácter de cadena seleccionado comienza desde 29 y termina en 49. Entonces, la posición inicial es 29 y la posición final es 49
javascript
html
MD Tahazzot
fuente
fuente
Respuestas:
Esto funcionará para la selección de texto con el mouse y el teclado para todos los elementos de área de texto en la página. Asegúrate de cambiar el selector y ser más específico allí y leer los comentarios si no quieres / necesitas la selección del teclado.
fuente
Haría uso del evento onselect para obtener lo mismo.
fuente
fuente
La respuesta de Caramba funcionó bastante bien, sin embargo, tuve el problema de que si seleccionaba algún texto y soltaba el mouse fuera del área de texto, el evento no se activaba.
Para resolver esto, cambié el evento inicial a
mousedown
, este evento registra unmouseup
evento en el documento para garantizar que se active después de soltar el cursor. losmouseup
evento luego se elimina después de que ha disparado.Esto se puede lograr agregando la
once
opciónaddEventListener
, pero lamentablemente no es compatible con IE11, por eso utilicé la solución en el fragmento.fuente
addSelfDestructiveEventListener
!fuente