Foros del Web » Programando para Internet » Javascript »

Obtener posición del cursor en "contenteditable"

Estas en el tema de Obtener posición del cursor en "contenteditable" en el foro de Javascript en Foros del Web. Hola... ¿existe algún modo de obtener la posición del cursor en un objeto "contenteditable"? Sé que en elementos textarea es posible, pero con la implantación ...
  #1 (permalink)  
Antiguo 10/06/2012, 11:30
Avatar de weissbier  
Fecha de Ingreso: febrero-2012
Ubicación: Nella mia casa
Mensajes: 31
Antigüedad: 12 años, 10 meses
Puntos: 1
Obtener posición del cursor en "contenteditable"

Hola... ¿existe algún modo de obtener la posición del cursor en un objeto "contenteditable"? Sé que en elementos textarea es posible, pero con la implantación en HTML5 de esta funcionalidad, sería algo bastante útil.
  #2 (permalink)  
Antiguo 10/06/2012, 17:51
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Obtener posición del cursor en "contenteditable"

Mira esto
http://jsfiddle.net/timdown/2YcaX/3/

Aparentemente cumple con el objetivo, aunque creo que no funciona en <I8

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 11/06/2012, 09:15
Avatar de weissbier  
Fecha de Ingreso: febrero-2012
Ubicación: Nella mia casa
Mensajes: 31
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Obtener posición del cursor en "contenteditable"

He estado investigando sobre el treewalker y el objeto rango... y me ha llevado varias horas comprenderlo (es realmente impresionante, sobre todo el primero de ellos). Pero no logro masticar estas líneas:

Código Javascript:
Ver original
  1. function(node) {
  2.             var nodeRange = document.createRange();
  3.             nodeRange.selectNode(node);
  4.             return nodeRange.compareBoundaryPoints(Range.END_TO_END, range) < 1 ?
  5.                 NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
  6.         }

Sé que es el tercer parámetro del treewalker, para filtrar el elemento, e incluirlo o no. Todo eso bien, pero me pierdo en los rangos... no sé qué se está haciendo ahí exactamente, y me gustaría comprenderlo... simplemene por saber lo que estoy haciendo.

Link hacia el código completo: http://jsfiddle.net/timdown/2YcaX/3/

Gracias.
  #4 (permalink)  
Antiguo 13/06/2012, 01:55
Avatar de weissbier  
Fecha de Ingreso: febrero-2012
Ubicación: Nella mia casa
Mensajes: 31
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Obtener posición del cursor en "contenteditable"

Bueno... tras seguir informándome sobre el objeto range (dudo que pueda ser traducido como rango), creo que lo que hace ese bloque de código es: tomar el rango dos veces para asegurar que el contador no está equivocado (de ahí que compruebe que la diferencia entre ambos puntos límites debe ser cero). De cualquier forma, sigo sin captarle la esencia al dichoso bloque...

Etiquetas: cursor, funcion, html
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 21:17.