setTimeout () sparare prematuramente quando mostra un avviso () in Chrome
-
11-10-2019 - |
Domanda
Ho il seguente codice:
t = setTimeout(function () { blah(); }, 900000);
Il che, in sostanza, chiede bla dopo 15 minuti di pagina aver caricato.
Tuttavia, se ad un certo punto mi mostra un avviso () o una conferma (), quindi non appena è respinto, blah () viene eseguito per qualche motivo.
Per quanto ho visto, questo accade solo in Safari / Chrome. Non succede in IE / Firefox.
Tutte le idee che cosa sta succedendo, o meglio ancora, come risolvere questo?
Grazie!
Daniel
Soluzione
Non siete soli, questo è l'errore: code.google. com / p / cromo / temi / dettaglio? id = 43796
Altri suggerimenti
Questo problema non è stato risolto dal team di cromo.
ho scoperto che, con l'introduzione di un certo ritardo tra clearTimeout e la setTimeout, risolverà il problema.
// mouse event
document.onmousemove = function(){
clearTimeout(timeout);
debug("Idle Timer reinitialized"); // apparently this function introduces some delay. it just works. You may want to include another timer here like for 2-3 seconds.
timeout = setTimeout(logoutNow, systemTimeout);
}
Spero che aiuta.
Sei sicuro che sia la causa, mi sono imbattuto questa demo e non può replicare.
"Timeout!" appare dopo 10 secondi, fare clic nella casella prima mano per prova.