Ну, и плюс к тому же, Range.commonAncestorContainer - это не совсем общий
родитель. Пример:
<div id="div">text</div>
<script>
div= document.getElementById('div');
rng= document.createRange(); // not ie
rng.setStart(div, 0);
rng.setEnd(div, 1);
alert(rng.commonAncestorContainer.id); // "div"
</script>
В данном случае, он равен элементу, в котором начинается и заканчивается Range-объект. А общим
родителем этих двух элементов в данном случае будет body.