Probé todo tipo de soluciones para indexar una matriz y eliminar elementos que coincidan con una expresión regular. La solución con la que terminé debería funcionar, ya que no omite las iteraciones de bucle debido al cambio de longitud de la matriz, que es el problema que tenía antes. Sin embargo, ahora parece ignorar mi declaración if.
const iframes = Array.from(document.getElementsByTagName("iframe")).filter(frame => frame.getAttribute("src") == "/domain/to/iframe"); const idoc = iframes.length === 1 ? iframes[0].contentWindow.document : document; const regex = /.*TextGoesHere*/sig; var msgs = idoc.getElementsByClassName("message"); msgs = Array.from(msgs); while (msgs.length > 0) { removal = msgs.pop(msgs.length); if (regex.test(removal.innerHTML)) { removal.remove(); } else { console.log(regex.test(removal.innerHTML)); } }Producción:
false false true true false false