Найти все текстовые узлы

Я пытаюсь написать букмарклет, который вызывает функциюdoSomething(textNode) на всех экземплярах видимого текста в документе.

doSomething(), Просто для удовольствия, заменяет каждое слово с «Derp», заменив TextContent на TextNode перешедшего в него. Тем не менее, это делает некоторые textNodes, которые являются пустыми, чтобы слова в них, так что это ломает веб-страницу.

Есть ли способ позвонитьdoSomething() только на каждом textNode, в котором есть слова?

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

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

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