Busqué aquí y encontré una solución rápida para llamar a una acción cuando el usuario está inactivo en la página. Básicamente funciona bien en todos los navegadores.Problema extraño con setTimeout() en Google Chrome
Pero cuando utilizo una alerta o un cuadro de diálogo de confirmación en la página, el problema extraño ocurre en Google Chrome.
Después de que desaparezca el cuadro de alerta o confirmación (Presionado OK, Cancelar o Cruzar), la función inactiva funciona inesperadamente.
- Después de confirmar la caja o cuadro de alerta desaparece, que entró desde el enlace de onclick, Tengo '3 segundos pasó' caja inmediatamente
probado en FF, IE y Chrome (más reciente). Simplemente ocurre en Chrome.
Mi código está aquí: http://jsbin.com/ifule3
window.onload = idleTimer;
function idleTimer() {
var idleDuration;
document.onmousemove = idleReset;
function idleReset() {
if (idleDuration) {
clearTimeout(idleDuration);
idleDuration = 0;
}
idleDuration = setTimeout(function() {
alert('3 seconds passed.');
}, 3000)
}
};
<a onclick="if(confirm('?')) { alert('Ok Pressed.') } else { return false; };">First Link!</a>
<a onclick="alert('test');" >Second Link!</a>
Parece que mi explicación no es suficiente:/
he cambiado el código con jQuery;
jQuery(document).ready(function() {
var idleDuration;
jQuery(document).mousemove(function() {
if (idleDuration) {
clearTimeout(idleDuration);
idleDuration = 0;
}
idleDuration = setTimeout(function() {
someIdleAction();
window.location = 'some url';
}, 3000)
})
});
Cuando pongo este código en mi página, funciona como un encanto. Abro la página, hago algunas acciones con el mouse o no, luego 3 segundos sin mover el mouse, tengo la alerta inactiva. Esto es lo que necesito.
Cuando coloco un enlace que simplemente llama a un cuadro de alerta y hago clic en él, aparece el cuadro de alerta. Luego cierro el cuadro y recibí la alerta inactiva, que es '3 segundos pasados'.
<a onclick="if(confirm('Are you OK?')) { alert('Nice.') } else { return false; };">First Link!</a>
<a onclick="alert('An alert.');" >Second Link!</a>
Se produce en google chrome. Con IE y FF todo está bien. Aumentando el tiempo de espera, nada cambia.
* "... la función inactiva funciona inesperadamente." * Inesperadamente ** cómo **?!?! –
Bienvenido a StackOverflow. A diferencia de otros sitios, uno de los objetivos es que StackOverflow * esté solo *. Por supuesto, conéctese a ejemplos prácticos en vivo como lo hizo, pero incluya el código que está usando en su pregunta (es por eso que Yi Jiang lo copió allí para usted). Link Rot puede establecerse fácilmente (los recursos externos se eliminan, renombrar, etc.) y además, las personas no deberían tener que ir a otro lado si pueden ver lo que está mal de la pregunta en sí. ¡Que te diviertas! –
@ T.J. Crowder, +1 para el, básicamente, ** HULK SMASH !! ** = D –