Hallo,
ich versuche gerade über JavaScript den absoluten Index für ein Node-Objekt innerhalb des DOM-Baumes herauszufinden, schweitere jedoch schon am Durchlaufen des DOM-Baumes.
Der eingesetzte Quelltext sieht so aus:
function getDomChilds(parent) {
for(i = 0; i < parent.childNodes.length; i++) {
getDomChilds(parent.childNodes[i]);
}
}
Ich benötige den absoluten Index, um die Selektion nach dem Neu laden der Seite wiederherstellen zu können, weil sich getSelection().getRangeAt(0).anchorNode natürlich auf das aktuelle Dokument beziehen. Das ganze wird von außern über eine native Anwendung gesteuert (Undo/Redo Stack) und soll dafür verwendet werden, um bei einem Undo bzw. Redo die alte Selektion wiederherstellen zu können. Das ermitteln der Selektion oder die Wiederherstellung ist kein Problem, sobald ich den Index für die Node und die Node für einen Index finden kann.
Ich habe auch schon versucht einfach document.getElementsByTagName("*") einfach zu durchlaufen. Das Problem scheint zu sein, dass die Nodes geclont werden und getSelection().getRangeAt(0).anchorNode im gesamten Array deshalb nicht vorkommt.
Ich entwickle ausschließlich für Chrome, Browserweichen oder so sind deshalb nicht Notwendug. Bei der Ausführung des o.g. Quelltextes hängt sich leider der Browser komplett auf. Ich habe auch versucht etwas später in den DOM-Baum einzusteigen und document.getElementsByTagName("body")[0] als "parent" für den Funktionsaufrufes anstelle von "document" zu verwenden.
Jemand eine Idee?