Destaque uma palavra de texto na página usando .replace ()
Estou desenvolvendo uma extensão do Google Chrome que permite aplicar automaticamente uma regra CSS de destaque a uma palavra que você escolher.
eu tenho o seguinte código
var elements = document.getElementsByTagName('*');
for (var i=0; i<elements.length; i++) {
var element = elements[i];
for (var j=0; j<element.childNodes.length; j++) {
var node = element.childNodes[j];
if(node.nodeType === 3) {
var text = node.nodeValue;
var fetchedText = text.match(/teste/gi);
if(fetchedText) {
var replacedText = element.innerHTML.replace(/(teste)/gi, "<span style=\"background-color: yellow\">$1</span>");
if (replacedText !== text) {
element.innerHTML = replacedText;
}
}
}
}
}
O que interrompe e congela minha guia Chrome. No entanto, se eu mudar deelement.innerHTML = replacedText;
paraelement.innerHTML = "text";
isso funciona.
Não consigo encontrar o que há de errado com o código a seguir.