Al desarrollar un complemento de Microsoft Word Online, mi equipo necesita detectar que el documento gana/recupera el enfoque (ETA: para activar otra funcionalidad que depende de este conocimiento). Parece que Microsoft ha bloqueado estrictamente la capacidad de secuencias de comandos en este contexto: todas las funciones de window.on* se reemplazan por nulas, todo el código de manejo de errores está profundamente ofuscado, etc. Nuestros esfuerzos hasta ahora han sido frustrados.
Simplemente configurar window.onfocus en una nueva función hace que el complemento no se cargue correctamente, probablemente porque está activando un analizador de código como inseguro, pero difícil de saber.
Tampoco hay nada en la API de JavaScript de Microsoft Word Online que proporcione directamente esta funcionalidad. Los scripts pueden detectar cuándo la selección del documento ha cambiado fácilmente con un método provisto, pero eso parece ser todo para la funcionalidad documentada en esta área. (Obviamente, simplemente detectar cambios en el documento no funcionará).
¿Cuál es el mejor enfoque para detectar el enfoque del documento y/o la ventana en esta situación? Gracias.
El evento document.onvisibilitychange se puede utilizar como una aproximación aproximada de la funcionalidad requerida.
document.onvisibilitychange = (ev) => { if (document.visibilityState == "visible") { // Handle pseudo-focus event } else { // Handle pseudo-blur event } };Esto se puede combinar como se desee con el evento DocumentSelectionChanged de la API de Office Online para refinar aún más y detectar cuándo se coloca el cursor dentro del documento de Word. (Es decir, active la lógica de enfoque ganado solo cuando el evento Office DocumentSelectionChanged se active la primera vez después de que el evento document.onvisibilitychange del navegador se active con document.visibilityState igual a "visible").