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