Я искал несколько дней, но не смог найти одно надежное решение для начала / конца выбора в Internet Explorer, я пробовал это и это решение.
В обоих случаях используется document.selection.createRange () , приведенный ниже код будет работать достаточно хорошо, но если вы перейдете на новую строку (нажмите ввод один или несколько раз), а затем попытаетесь начало / конец выбора вы закончите, прежде чем вы нажмете Enter. Из того, что я вижу, createRange () не будет выбирать последние пустые разрывы строк, я не хочу, чтобы код становился слишком запутанным, поэтому есть другое решение для этого?
function selecetion_range()
{
var range = document.selection.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText(textarea[0]);
stored_range.setEndPoint('EndToEnd', range );
return {
start: stored_range.text.replace(/\r/g,'').length - range.text.replace(/\r/g,'').length,
end: stored_range.text.replace(/\r/g,'').length
}
}
редактирование:
Чтобы прояснить проблему, допустим, мой курсор находится в конце этой цитаты:
"какой-то случайный текст
"
как только я воспользуюсь приведенным выше кодом, выбор начнется так:
"какой-то случайный текст "