Para áreas de texto podés usar algo así:
Código PHP:
<script>
function devPos(input){
if(typeof document.selection != 'undefined' && document.selection && typeof input.selectionStart == 'undefined' || input.selectionStart=='vacio'){
var str =document.selection.createRange();
var stored_range = str.duplicate();
stored_range.moveToElementText(input);
stored_range.setEndPoint( 'EndToEnd', str );
input.selectionStart = stored_range.text.length - str.text.length;
input.selectionEnd = input.selectionStart + str.text.length;
alert(input.selectionStart);
input.selectionStart='vacio';
}else if(typeof input.selectionStart != 'undefined'){
alert(input.selectionStart);
}
}
</script>
Podés verla funcionando aquí:
http://www.disegnocentell.com.ar/new...onTextarea.php
Para campos de texto de línea única es diferente (fijate en el código fuente del ejemplo.)