Tôi đang cố viết một bookmarklet gọi hàm doSomething(textNode)
trên tất cả các phiên bản văn bản có thể nhìn thấy trên tài liệu.Tìm tất cả các nút văn bản
doSomething()
, chỉ để giải trí, thay thế mọi từ bằng "derp" bằng cách thay thế textContent của textNode được truyền vào nó. Tuy nhiên, điều này làm cho một số textNodes trống để có các từ trong đó, do đó nó phá vỡ trang web.
Có cách nào để gọi doSomething()
chỉ trên mỗi textNode có từ trong đó không?
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);