Posición del cursor dentro de un texto
Publicado: 15/11/2006
Leído: 4886 veces
Lectura: 0 minutos
Categoría: AJAX y Javascript
Valoracion: 5,504999


Es extraño, pero algo tan aparentemente fácil como ubicar la posición en que se encuentra el cursor dentro de un cuadro de texto (un input type=text o un textarea), no ha sido fácil de googlear.

Y una vez has sabido como hacerlo y has resuelto todos los pequeños e interminables problemas que aparecen, te queda un código terriblemente sencillo que, tras verlo, se te puede decir "¿y para esto tanto lío?"... pues sí, tanto lío

Bueno, a lo que íbamos. De la función javascript sólo hay que asignar el valor de "tb" en base al id del elemento sobre el que vamos a trabajar y te devuelve la posición del cursor:

function posicionCursor()
{
       var tb = document.getElementById("miCuadrodeTexto")
        var cursor = -1;
       
        // IE
        if (document.selection && (document.selection != 'undefined'))
        {
            var _range = document.selection.createRange();
            var contador = 0;
            while (_range.move('character', -1))
                contador++;
            cursor = contador;
        }
       // FF
        else if (tb.selectionStart >= 0)
            cursor = tb.selectionStart;
   
       return cursor;
}

Ante cualquier duda o sugerencia sobre este artículo, coméntalo en el foro de ASP.NET de nuestra Web Amiga sobre asp.net