Я нашел это по другому вопросу:
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);
Он должен выбрать текст из текстовой области между восьмым символом и 12-м символом.
Он работает в Firefox и Chrome, но в Opera я получаю неправильный выбор. Смещение перемещает два символа за
Что с ним не так?
Кажется, что он имеет какое-то отношение к новым строкам:
\n
, потому что выбор правильный, если текст не содержит новый символ строки.