Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Получение позиции в курсора в textArea? (https://javascript.ru/forum/css-html-internet-explorer/17793-poluchenie-pozicii-v-kursora-v-textarea.html)

mister_maxim 03.06.2011 09:50

Получение позиции в курсора в textArea?
 
Интересует эта штука только для 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, а именно: при переходе с конца текущей строки на начало новой - позиция не изменяется, аналогично и наоборот: с начала текущей строки на конец предыдущей - тоже не меняется. Если нельзя изменить код приведенной функции, то как можно отследить эту разницу в позициях по другому?


Часовой пояс GMT +3, время: 12:57.