execCommand insertHTML quebra a janela armazenada.getSelection ()

Ao usar métodos para selecionar texto e restaurar o texto selecionado em uma página, eu descobri que executandoexecCommand('insertHTML... inbetween faz com que a seleção armazenada seja interrompid

Este é um exemplo de como o texto é selecionado e restaurad

// Get Selection
 var sel = window.getSelection().getRangeAt(0);
 // Clear Selections 
 window.getSelection().removeAllRanges();
 // Restore Selection 
 window.getSelection().addRange(sel)

Isso funciona bem, no entanto, quando você executaexecCommand('insertHTML.. as seleçõesendOffset define o mesmo valor que as seleçõesstartOffset

Existe uma razão para isso? Mais importante: existe uma maneira de contornar isso?

Um exemplo completo do bug, completo com alguns registros básicos do console, pode ser visto aqui.http: //jsfiddle.net/blowsie/Y8pJ7

O objetivo deste violino é selecionar o texto, transformá-lo em maiúsculas e selecionar novamente o text

questionAnswers(2)

yourAnswerToTheQuestion