В textarea это помогает (
отсюда)
<script>
function getCaret(el)
{
if (el.selectionStart) {return el.selectionStart;}
else if (document.selection)
{ el.focus();
var r = document.selection.createRange();
if (r == null) {return 0;}
var re = el.createTextRange(),
rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);
return rc.text.length;
}
return 0;
}
</script>
<textarea style="width:300px; height:120px;" onclick="alert(getCaret(this))">Это текст, позицию которого можно получить
Это текст, позицию которого можно
</textarea>