¿Hay alguna manera de detener el conteo cuando la página no está activa? setTimeout("myfunction()",10000);
. Por ejemplo,Ejecute setTimeout solo cuando la pestaña esté activa
- Un usuario llega a una "cierta página" y permanece allí durante 2000 ms
- usuario pasa a otra pestaña, deja "un poco de página" abierta.
myfunction()
no se dispara hasta que hayan vuelto por otros 8000ms.
A menos que me falta algo, esto no ejecutará las funciones de setInterval en la carga de la página inicial antes de cualquier interacción del usuario, como clics en la página, ya que el evento 'onfocus' no parece activarse en la carga de la página inicial. –
@torazaburo Inicialmente, 'window.blurred' será' undefined' que es lo mismo que si fuera 'false'. Por lo tanto, el temporizador comienza la cuenta regresiva automáticamente. Observe cómo el 'setInterval' se ejecuta inmediatamente, no espera a que ocurra un enfoque o desenfoque. –
Puede usar document.hidden: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API#document.hidden_Read_only – SleepWalker