So erhalten Sie alle hervorgehobenen Elemente

Ich möchte alle Elemente in einem vom Benutzer hervorgehobenen Bereich erhalten. Das Problem ist, dass ich nicht weiß, wie ich zu verschiedenen Teilen des DOM gehen soll, wenn sich die Elemente an einem anderen Teil des Baums befinden. Mein Code kann bisher nur die Elemente aus dem startContainer des Auswahlbereichs holen. Brauche ich eine Art Rekursion? Hier ist mein Code:

    getSelectedElementTags:function() 
{
    var range, sel, container;
    sel = content.window.getSelection();
    if (sel.getRangeAt) 
    {
        if (sel.rangeCount > 0) 
        {
            range = sel.getRangeAt(0);              
        }
    } 
    else 
    {       
        range = content.window.createRange();
        range.setStart(sel.anchorNode, sel.anchorOffset);
        range.setEnd(sel.focusNode, sel.focusOffset);
        alert("range created");
    }


    if (range)
    {
        container = range["startContainer"];
        var elms = container.parentNode.getElementsByTagName("*");          
        elmlist = "parent: "+container.parentNode.tagName + " (" + elms.length + ")\n";
        for (i in elms)
        {
            if (elms[i].tagName != null)
            {
                elmlist += elms[i].tagName+"\n";
            }
        }

        alert(elmlist);
    }
},

Antworten auf die Frage(1)

Ihre Antwort auf die Frage