¿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
function getCaretPosition(element) { var caretOffset = 0; var doc = element.ownerDocument || element.document; var win = doc.defaultView || doc.parentWindow; var sel; if (typeof win.getSelection != "undefined") { var range = win.getSelection().getRangeAt(0); var preCaretRange = range.cloneRange(); preCaretRange.selectNodeContents(element); preCaretRange.setEnd(range.endContainer, range.endOffset); caretOffset = preCaretRange.toString().length; } else if ( (sel = doc.selection) && sel.type != "Control") { var textRange = sel.createRange(); var preCaretTextRange = doc.body.createTextRange(); preCaretTextRange.moveToElementText(element); preCaretTextRange.setEndPoint("EndToEnd", textRange); caretOffset = preCaretTextRange.text.length; } return caretOffset; }