Soy escritor técnico y en mi trabajo nos encontramos con una gran cantidad de reutilización de contenido. Es estándar escribir la primera instancia como "Lenguaje de marcado de hipertexto (HTML)" y simplemente usar HTML a partir de ese momento. Sin embargo, si constantemente reutilizo bloques de texto, es difícil hacerlo de manera consistente. Me gustaría simplemente escribir el acrónimo cada vez y, al cargar la página, reemplazar la primera instancia con la frase completa a través de JS.
Probé este script que encontré en línea, pero no funciona y genera un error en las herramientas de desarrollo de Chrome (TypeError: "body".html no es una función):
var replaced = ("body").html().replace('HTML', 'Hypertext Markup Language'); $("body").html(replaced);¿Este script está mal o me estoy perdiendo algo?
Qué tal esto:
function textNodesUnder(el){ var n, a=[], walk=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null,false); while(n=walk.nextNode()) a.push(n); return a; } function replaceAllInPage(oldStr, newStr) { textNodesUnder(document.body).forEach(node => { node.textContent = node.textContent.replaceAll(oldStr, newStr); }); } replaceAllInPage('HTML', 'Hypertext Markup Language'); textNodesUnder es de Phrogz