Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

145
Vistas
Cómo omitir un área Div específica al reemplazar texto en DOM-Nodes

Con esta edición, trato de ser más específico con mi pregunta y agregar mi último intento para resolver el problema: un complemento del navegador reemplaza algunas palabras en un sitio web. ¡Esta parte funciona! Ahora hay un texto que no debe ser reemplazado. Este texto está dentro de la clase "msg_content", por ejemplo

 <span class="msg_content">don't replace my words</span>.

Esta parte hace el trabajo de reemplazo y debe omitir elementos con la clase "msg_content":

 function replaceText (node) { if (node.nodeType === Node.TEXT_NODE) { //skip msg_content try { let note = document.querySelector('.msg_content'); if (node == note){ console.log("skip chat-area"); return; } } catch (e) { console.log(e); } let content = node.textContent; for (let [word, emoji] of langMap) { const regex = regexs.get(word); content = content.replace(regex, emoji); } node.textContent = content; } else { for (let i = 0; i < node.childNodes.length; i++) { replaceText(node.childNodes[i]); } } } replaceText(document.body);

El reemplazo funciona bien, pero no omite msg_content.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si desea verificar si una cadena está vacía, puede usar string.length . string.trim() en caso de que el div contenga espacios en blanco que son comunes en HTML:

 function replaceText (node) { if (node.nodeType === Node.TEXT_NODE) { // My try to skip specific area here (doesn't work) //if (document.getElementById("chatBar")) { // return; //} let content = node.textContent; if (!content.trim().length) return; // skip if content is empty for (let [word, emoji] of langMap) { const regex = regexs.get(word); content = content.replace(regex, emoji); } node.textContent = content; } else { // This node contains more than just text, call replaceText() on each // of its children. for (let i = 0; i < node.childNodes.length; i++) { replaceText(node.childNodes[i]); } } } replaceText(document.body);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda