Я нашел это по другому вопросу:
setCaretToPos = function(input, selectionStart, selectionEnd){
if(input.setSelectionRange){
input.focus();
input.setSelectionRange(selectionStart, selectionEnd);
}else if(input.createTextRange){
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionEnd);
range.moveStart('character', selectionStart);
range.select();
}
};
setCaretToPos(8, 12);
Он должен выделять текст из текстовой области между 8-м и 12-м символами.
Он работает в Firefox и Chrome, нов опере я получаю неправильный выбор.Смещение сдвигает два символа позади
Что с ним не так?
Кажется, это как-то связано с новыми строками:
\n
, потому что выбор правильный, если текст несодержит символ новой строки.