On peut détecter quand un utilisateur est inactif en JavaScript en vérifiant si l'internaute inter-agit avec la page ; pour cela on utilise les méthodes onload
, onmousemove
, onmousedown
, ontouchstart
, onclick
et onkeypress
.
Dans l'exemple suivant on crée deux fonctions, l'une est la fonction qui réinitialise le chronomètre chaque fois qu'une interaction est détectée, et l'autre est la fonction qui est exécutée périodiquement pendant la période d'inactivité de l'utilisateur. Pour cela on utilise la méthode JavaScript setInterval().
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Comment détecter quand un utilisateur est inactif en JavaScript ?</title>
</head>
<body>
<p class="delai">Vous êtes inactif depuis <span class="secondes"></span> secondes.</p>
<script>
let temps, secondes = 0;
function resetTemps()
{
document.querySelector(".delai") .style.display = 'none';
clearInterval(temps);
secondes = 0;
temps = setInterval(startTemps, 1000);
}
window.onload = resetTemps;
window.ontouchstart = resetTemps;
window.onclick = resetTemps;
window.onkeypress = resetTemps;
window.onmousemove = resetTemps;
window.onmousedown = resetTemps;
function startTemps()
{
secondes++;
document.querySelector(".secondes").textContent = secondes;
document.querySelector(".delai") .style.display = 'block';
}
</script>
</body>
</html>