У TextRange есть метод pasteHTML, для замены выделенного участка на новый HTML-код.
И TextRange будет работать только в IE и возможно в Opera. Для остальных W3C-совместимых браузеров придется работать уже с совсем другим объектом Range.
Range, TextRange и Selection