Foros del Web » Programando para Internet » Javascript »

Posicion del cursor en un contenteditable

Estas en el tema de Posicion del cursor en un contenteditable en el foro de Javascript en Foros del Web. Buenas compañeros, ¿Es posible obtener la posición del usuario en un div con contenteditable y considerar los tags incluidos en él?. Actualmente consigo el numero ...
  #1 (permalink)  
Antiguo 22/08/2013, 16:16
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Posicion del cursor en un contenteditable

Buenas compañeros,

¿Es posible obtener la posición del usuario en un div con contenteditable y considerar los tags incluidos en él?. Actualmente consigo el numero de letras hasta la posición del cursor, pero si existen "tags" no soy capaz de contarlos.

Es decir:

Ahora consigo: "hola" = 4 letras
Y quiero conseguir: "<b>hola</b>" = 11 letras

Uso la funcion:

Código Javascript:
Ver original
  1. function getCaretPosition(element) {
  2.     var caretOffset = 0;
  3.     var doc = element.ownerDocument || element.document;
  4.     var win = doc.defaultView || doc.parentWindow;
  5.     var sel;
  6.     if (typeof win.getSelection != "undefined") {
  7.         var range = win.getSelection().getRangeAt(0);
  8.         var preCaretRange = range.cloneRange();
  9.         preCaretRange.selectNodeContents(element);
  10.         preCaretRange.setEnd(range.endContainer, range.endOffset);
  11.         caretOffset = preCaretRange.toString().length;
  12.     } else if ( (sel = doc.selection) && sel.type != "Control") {
  13.         var textRange = sel.createRange();
  14.         var preCaretTextRange = doc.body.createTextRange();
  15.         preCaretTextRange.moveToElementText(element);
  16.         preCaretTextRange.setEndPoint("EndToEnd", textRange);
  17.         caretOffset = preCaretTextRange.text.length;
  18.     }
  19.     return caretOffset;
  20. }
  #2 (permalink)  
Antiguo 26/08/2013, 03:10
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Posicion del cursor en un contenteditable

No tengo ni zorra de que es contenteditable, pero para obtener las coordenadas del cursor, crea una funcion, llamala con un evento (el que sea), pásale como argumento el tipo "event" y dentro de la funcion usa event.clientY y event.clienX, esto te proporcionara las coordenadas del cursor.
  #3 (permalink)  
Antiguo 30/08/2013, 02:11
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Posicion del cursor en un contenteditable

jeje Albuss... jeje. No tiene nada que ver con los eventos del raton, un contenteditable es un div editable, en plan editor, donde el cursor es donde el usuario se encuentra escribiendo.

jajaja

Etiquetas: cursor, funcion, posicion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.