Hallo Forum,
ist es möglich, auf die Nodes eines range-Objekts, bzw. eines documentFragments mit Hilfe des nodeIterators zuzugreifen?
Ich möchte die Textdaten einer Selektion manipulieren, was ja mit rekursivem Zugriff auf die DOM-Struktur ginge, mit dem nodeIterator aber viel schöner wäre.
toString() reicht nicht aus, da ich die Textbausteine hinterher wieder ihren Nodes zuordnen möchte.
Das Ganze ist für eine Firefox-Erweiterung gedacht, es ist also schon super, wenn es nur auf Mozilla funktioniert.
Mein bisheriger Ansatz:
function test() {
var selection = window.getSelection();
if (selection && !selection.isCollapsed) {
var text_parts = new Array;
var range = selection.getRangeAt(0);
var clone = range.cloneRange();
// content sollte nun ein Objekt vom Typ „documentFragment“ enthalten.
var content = clone.cloneContents();
// Der iterator nimmt content nicht.
var iterator = document.createNodeIterator(content, NodeFilter.SHOW_ELEMENT, null, false);
var node;
while((node = iterator.nextNode()) != null) {
text_parts.push(node.data);
}
return text_parts;
}
}
Geht so etwas überhaupt?
Ich hoffe, ihr könnt mir helfen.
Alles Gute & vielen Dank schon mal
treewalker