Finde alle text-Knoten

Ich versuche zu schreiben, ein bookmarklet, der die Funktion aufruft doSomething(textNode) auf alle Instanzen der sichtbare text auf das Dokument.

doSomething() nur so zum Spaß, ersetzt jedes Wort "derp" durch den Austausch der textContent des textNode an Sie übergeben. Allerdings, dies macht einige textNodes, die leer sind, haben Wörter in Ihnen, so bricht es die web-Seite.

Gibt es eine Möglichkeit zu nennen doSomething() jeweils eine textNode, der hat Wörter drin?

function recurse(element)
{
    if (element.childNodes.length > 0) 
        for (var i = 0; i < element.childNodes.length; i++) 
            recurse(element.childNodes[i]);

    if (element.nodeType == Node.TEXT_NODE && element.nodeValue != '') 
        doSomething(element);
}
var html = document.getElementsByTagName('html')[0];
recurse(html);
InformationsquelleAutor Rahat Ahmed | 2012-02-07
Schreibe einen Kommentar