html - Auswahl - immer die range + Startknoten + Endung-Knoten + Abstand

Aus meiner Vorherige Frage für die Auswahl von bestimmten html-text, die ich durchgemacht habe dieser link zu verstehen-Bereich im html-string.

Für die Auswahl eines bestimmten Textes auf html-Seite. Wir müssen befolgen Sie diese Schritte.

Davon ausgegangen HTML:

<h4 id="entry1196"><a
    href="http://radar.oreilly.com/archives/2007/03/call_for_a_blog_1.html"
    class="external">Call for a Blogger's Code of Conduct</a></h4>

<p>Tim O'Reilly calls for a Blogger Code of Conduct. His proposals are:</p>

<ol>
    <li>Take responsibility not just for your own words, but for the
        comments you allow on your blog.</li>
    <li>Label your tolerance level for abusive comments.</li>
    <li>Consider eliminating anonymous comments.</li>
</ol>

java-script, um die Auswahl durch Auswahl

var range = document.createRange();  //create range
var startPar = [the p node];         //starting parameter 
var endLi = [the second li node];    //ending parameter
range.setStart(startPar,13);         //distance from starting parameter.
range.setEnd(endLi,17);              //distance from ending parameter
range.select();                      //this statement will make selection

Möchte ich dies tun, umkehren, Weg. Ich meine, davon ausgehen, dass die Selektion erfolgt durch den Benutzer auf dem browser (safari). Meine Frage ist, dass, Wie können wir Holen Sie ab-Knoten (da haben wir 'die p-Knoten' hier) und End-Knoten (da haben wir 'der zweite Knoten li' hier) und die Auswahl auch (wie wir 13,17 hier)?

Edit : meine Bemühungen (Von diese Frage)

    var sel = window.getSelection();

    if (sel.rangeCount < 1) {
        return;
    }
    var range = sel.getRangeAt(0);
    var startNode = range.startContainer, endNode = range.endContainer;

    //Split the start and end container text nodes, if necessary
    if (endNode.nodeType == 3) {
        endNode.splitText(range.endOffset);
        range.setEnd(endNode, endNode.length);
    }

    if (startNode.nodeType == 3) {
        startNode = startNode.splitText(range.startOffset);
        range.setStart(startNode, 0);
    }

Aber, aber ich bin verwirrt über wie immer, wenn er aktiviert ist, den ersten Absatz oder zweite oder Dritte oder ausgewählt haben, wird in der ersten Position oder der zweiten Position oder was....

  • Könnte Sie klären, was genau Sie erreichen wollen?
  • Unten, lassen Sie mich erklären. Benutzer-Auswahl & tippt auf eine Taste. Ich brauche zum speichern der Auswahl, die der Benutzer ausgewählt hat.
Schreibe einen Kommentar