Интересует эта штука только для IE, т.к. для других - проблемы такой нет.
Где-то скачал такую функцию:
function ie_getSelection(inputBox)
{
//and now, the blinkered IE way
var bookmark = document.selection.createRange().getBookmark() ;
var selection = inputBox.createTextRange();
selection.moveToBookmark(bookmark) ;
var before = inputBox.createTextRange();
before.collapse(true);
before.setEndPoint("EndToStart", selection);
var beforeLength = before.text.length;
var selLength = selection.text.length;
return {
start: beforeLength,
end: beforeLength+selLength
};
};
Эту функцию я вызываю временным интервалом для отслежки позиции курсора и выделения.
Но она работает не вполне корректно для ie8, а именно: при переходе с конца текущей строки на начало новой - позиция не изменяется, аналогично и наоборот: с начала текущей строки на конец предыдущей - тоже не меняется. Если нельзя изменить код приведенной функции, то как можно отследить эту разницу в позициях по другому?