Estoy trabajando en una extensión del navegador que destaca la dificultad de ciertas palabras a medida que escribes en gmail. Estoy usando InboxSDK para los cambios básicos de formato.
En un nivel básico, la lógica que escribí hace lo siguiente:
raw text del compositor (aprovechando inboxSDK)raw text a la función format() y obtenga un cuerpo HTML recién generadoAhora hay un botón personalizado de InboxSDSK en el redactor de GMail. Si hace clic en él, ocurrirá lo descrito anteriormente.
Ahora, quiero hacer que el cuerpo HTML del redactor de Gmail reaccione mientras escribe. (es decir, mientras el usuario escribe una oración difícil de leer, el editor debe marcar la oración en rojo. A medida que el usuario la edita, el resaltado en rojo debe desaparecer).
Pensé que esto podría hacerse de un par de maneras. Ninguno de ellos terminó trabajando.
bodyChange de InboxDSK, pero esto genera inmediatamente un bucle infinito porque (1) el usuario comienza a escribir (2) la función format() reemplaza el HTML anterior con nuevos estilos de formato y eso (3) desencadena un bodyChange que luego activa la función format() de nuevo y así sucesivamente.Código:
let OriginalText = document.querySelector('div[contenteditable][aria-label="Message Body"]').innerText; function format() { ... composeView.setBodyHTML(OutputText); } composeView.on('bodyChanged', function() { format(OriginalText); });keydown , por lo que escribí: window.addEventListener('keydown', function (e) { if (e.keyCode == 90) { format(OriginalText); } });Pero aparentemente, esto no se ejecuta en Gmail. ¿Está deteniendo la propagación de eventos?
¿Cómo abordarías esto?