Vous pouvez utiliser le Caret Range plugin pour cela, comme ceci:
var range = $('textarea').caret().start;
//divide by columns to get row, modulus by columns to get column position
Cela ne fonctionne que sur une police de largeur fixe mais, si elle n'a pas été à largeur fixe, vous devez rechercher en ligne le rendement et calculer de cette façon, mais la sélection/plage est la partie la plus délicate ... vous pouvez utiliser le plug-in ou see how it gets the selection here.
Side note: Il est très non-cross-navigateur, tous les plugins/éditeurs comme celui-ci (actuellement) ont des gestionnaires de cas spécifiques au navigateur, comme les navigateurs anciens hors de vue, cela peut être aminci un peu.