Мне удалось воссоздать проблему, это происходит, когда вы выбираете строку, а затем строку чуть ниже, останавливаясь перед первым символом (трудно объяснить).
Проблема в том, что браузер думает, что вы выбираете тело, я не могу объяснить это, но я нашел решение, вот код, который работает для меня:
var selectedEndId;
if($(selectedText.focusNode.parentNode)[0] != document.body){
selectedEndId = $(selectedText.focusNode.parentNode).attr('id');
}else{
selectedEndId = selectedBeginId;
}
Я добавил его чуть ниже линии:
var selectedBeginId = $(selectedText.anchorNode.parentNode).attr('id');
Как видите, мой код работает, но он может создавать другие проблемы.
Надеюсь, я выведу тебя на трассу!