Wie kann ich den text markieren, der DOM Range-Objekt?

Ich wählen Sie etwas text auf der html-Seite(geöffnet im firefox) mit der Maus,und Verwendung von javascript-Funktionen, die ich schaffen/Holen Sie sich die rangeobject entsprechend dem ausgewählten text.

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

Ich will jetzt markieren Sie alle den text, der kommt unter die rangeobject.Ich mache es so,

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

Gut,dies funktioniert sehr gut, nur wenn die rangeobject(Startpunkt und Endpunkt) liegt in der gleichen textnode,dann unterstreicht Sie den entsprechenden text.Ex

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

Aber wenn die rangeobject umfasst mehr als eine textnode, dann ist es nicht die Arbeit properlay, Es unterstreicht nur die Texte, die liegen in der ersten textnode,Ex

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

Irgendeine Idee, wie kann ich es machen, alle Texte, die unter rangeobject,hervorgehoben,unabhängig davon, ob Palette, liegt in einem einzigen Knoten oder mehrere Knoten?
Danke....

InformationsquelleAutor der Frage ganapati | 2010-04-06

Schreibe einen Kommentar