Как выделить текст объекта Range DOM?

Я выделяю некоторый текст на html-странице (открытой в Firefox) с помощью мыши и, используя функции JavaScript, создаю / получаю объект диапазона, соответствующий выделенному тексту.

 userSelection =window.getSelection(); 
 var rangeObject = getRangeObject(userSelection);

Теперь я хочу выделить весь текст, который попадает под диапазон объекта. Я делаю это так,

  var span = document.createElement("span");
  rangeObject.surroundContents(span);
  span.style.backgroundColor = "yellow";

Ну, это работает нормально, только когда rangeobject (начальная точка и конечная точка) находится в одном и том же текстовом узле, тогда он выделяет соответствующий текст.

    <p>In this case,the text selected will be highlighted properly,
       because the selected text lies under a single textnode</p>

Но если диапазон объекта охватывает более одного текстового узла, то он не работает должным образом, он выделяет только те тексты, которые находятся в первом текстовом узле, например

 <p><h3>In this case</h3>, only the text inside the header(h3) 
  will be highlighted, not any text outside the header</p> 

Любая идея, как я могу сделать, все тексты, которые подпадают под rangeobject, выделены, независимо от того, лежит ли диапазон в одном узле или нескольких узлах? Спасибо....

Ответы на вопрос(4)

Ваш ответ на вопрос