13
私はブックマークレットを書いて、文書上の見えるテキストのすべてのインスタンスに関数doSomething(textNode)
を呼び出そうとしています。すべてのテキストノードを見つける
は、単に楽しいため、渡されたtextNodeのtextContentを置き換えることによって、すべての単語を「derp」に置き換えます。しかし、これにより空のテキストノードには単語が含まれているため、Webページが壊れてしまいます。
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);