Wie kann ich den Text des DOM-Bereichsobjekts hervorheben?
Ich wähle Text auf der HTML-Seite (in Firefox geöffnet) mit der Maus aus und verwende Javascript-Funktionen. Ich erstelle / erhalte das Bereichsobjekt, das dem ausgewählten Text entspricht.
userSelection =window.getSelection();
var rangeObject = getRangeObject(userSelection);
etzt möchte ich den gesamten Text hervorheben, der unter das Bereichsobjekt fällt. Ich mache es so,
var span = document.createElement("span");
rangeObject.surroundContents(span);
span.style.backgroundColor = "yellow";
Nun, das funktioniert einwandfrei, nur wenn das Entfernungsobjekt (Startpunkt und Endpunkt) im selben Textknoten liegt, wird der entsprechende Text hervorgehoben.Ex
<p>In this case,the text selected will be highlighted properly,
because the selected text lies under a single textnode</p>
Aber wenn das Bereichsobjekt mehr als einen Textknoten abdeckt, funktioniert es nicht richtig. Es werden nur die Texte hervorgehoben, die im ersten Textknoten, Ex @, liege
<p><h3>In this case</h3>, only the text inside the header(h3)
will be highlighted, not any text outside the header</p>
Eine Idee wie kann ich machen, dass alle Texte, die unter rangeobject fallen, hervorgehoben werden, unabhängig davon, ob range in einem einzelnen Knoten oder in mehreren Knoten liegt? Vielen Dank...