Всё есть в коде этого скрипта: http://javascript.aho.ru/example/JsPrimeryCode-90.htm. Подробнее говорить довольно долго, потому что у IE есть 2 способа счёта позиции (TextRange и посимвольный, разница в том, что в первом длина переносов - 1, во втором - 2), у FF - один, у Оперы 8+ - та и другая система.