Obter posição do cursor em div editável por conteúdo
Encontrei o seguinte código aqui no SO para obter a posição do cursor de uma div editável por conteúdo, no entanto, ele sempre retorna 0.
A função que deve recuperar a posição:
new function($) {
$.fn.getCursorPosition = function() {
var pos = 0;
var input = $(this).get(0);
// IE Support
if (document.selection) {
input.focus();
var sel = document.selection.createRange();
var selLen = document.selection.createRange().text.length;
sel.moveStart('character', -input.value.length);
pos = sel.text.length - selLen;
}
// Firefox support
else if (input.selectionStart || input.selectionStart == '0')
pos = input.selectionStart;
return pos;
}
} (jQuery);
O código que eu uso para testá-lo:
$('div.MESSAGE_OF_DAY').keyup(function() {
alert($(this).getCursorPosition()); // always returns 0???
});
Estou usando o Chrome (8.0.552.215), se isso importa.