Я выделяю некоторый текст на html-странице (открытой в Firefox) с помощью мыши и, используя функции JavaScript, создаю / получаю объект range, соответствующий выделенному тексту.
userSelection =window.getSelection();
var rangeObject = getRangeObject(userSelection);
Теперь я хочу выделить весь текст, который попадает под диапазон объекта. Я делаю это так,
var span = document.createElement("span");
rangeObject.surroundContents(span);
span.style.backgroundColor = "yellow";
Ну, это работает нормально, только когда объект range (начальная и конечная точки) находится в одном текстовом узле, тогда он выделяет соответствующий текст. Ex
<p>In this case,the text selected will be highlighted properly,
because the selected text lies under a single textnode</p>
Но если объект range охватывает более одного текстового узла, то он не работает должным образом, он выделяет только те тексты, которые находятся в первом текстовом узле, например
<p><h3>In this case</h3>, only the text inside the header(h3)
will be highlighted, not any text outside the header</p>
Любая идея, как я могу сделать, все тексты, которые подпадают под rangeobject, выделены, независимо от того, лежит ли диапазон в одном узле или нескольких узлах?
Спасибо ....