Передо мной стояла задача написать WYSIWYG редактор генерирующий абсолютно валидный и абсолютно не избыточный html. Без Range было не обойтись. Из готового в инете нашёл только не рабочий скрипт некоего Jorgen Horstink, поэтому Range for IE пришлось писать с нуля.
Скрипт получился довольно увесистый (41 кБ), но если по удалять пробелы, табы, укоротить имена переменные я думаю до 15 кБ можно сжать. Из-за причуд Explorera скрипт полностью переписывался 3 раза. Объект имитирующий работу Range для IE тестировался на уже готовом WYSIWYG редакторе, работа которого полностью основана на Range.
Из недостатков работы могу отметить следующее:
- Значение startOffset или endOffset какого-либо range может стать не правильным если производились какие то манипуляции с DOM (типа вставки или удалении). Но это просто обходится правильной последовательностью действий скрипта, тем более, что в других браузерах бываю такие проблемы (особенно в Opera).
var range = new Range (document.selection.createRange()); // Создание range для выделенияили, как обычно
var range = document.createRange(); // Создание нового, пустого rangeСкачать объект можно тут: W3C Range for IE
Буду рад, если скрипт Вам пригодится.

