Как получить все элементы, которые выделены

Я хочу получить все элементы в выделенной пользователем области. Проблема в том, что я нене знает, как пройти к различным частям DOM, когда элементы находятся в другой части дерева. Мой код до сих пор может получить только элементы из startContainer диапазона выбора. Нужна ли какая-то рекурсия? Вот мой код:

    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);
    }
},

Ответы на вопрос(1)

Ваш ответ на вопрос