Antes de nada voy a compartir algo que he descubierto hace poquísimo para saber en un textarea donde se encuentra el cursor y si existe algún texto seleccionado.
Las propiedades (o atributos) selectionStart y selectionEnd. De paso pongo la página de prueba que usé:
Código PHP:
<html>
<head>
<script>
function datos() {
with (document.forms["prueba"]) {
inicio.value = texto.selectionStart;
fin.value = texto.selectionEnd;
longitud.value = texto.selectionEnd - texto.selectionStart;
}
}
</script>
</head>
<body onload="datos(); with (document.forms[0].texto) {onclick = datos; onkeyup = datos;}">
<form name="prueba">
<textarea name="texto" rows="10" cols="40">Prueba</textarea>
<br />
inicio:
<input name="inicio" type="text" value="" size="4">
fin:
<input name="fin" type="text" value="" size="4">
longitud de selección:
<input name="longitud" type="text" value="" size="6">
</form>
</body>
</html>
Para ese caso yo mismo he sugerido en más de una ocasión el código de este mismo foro, pero sinceramente no lo acabo de entender. Buscando en la red no encontré nada mejor, pero supongo que debe existir algo más fácil y comprensible.
Saludos