11528 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Pour un site qui tournera en local en mode borne (Firefox --kiosk) avec un écran tactile, je cherche comment faire pour qu'il revienne automatiquement à la page d'accueil au bout d'un temps défini (genre 5 min) sans clic de souris ni pression sur le clavier.

Merci d'avance de votre aide.
un settimeout globale qui se lance au bout de 5 minutes.
Modifié par JENCAL (22 Jul 2022 - 14:32)
Merci Jencal pour la réponse.

Mais je crains qu'un settimeout global lance le rechargement même si quelqu'un est en train d'utiliser la borne.

Ma préoccupation c'est que les utilisateurs d'une borne retournent rarement à l'accueil avant d'aller faire autre chose. Je souhaite donc que si l'ordi n'est pas utilisé (souris, clavier, écran tactile) depuis 5 min alors il déclenche le rechargement de la page d'accueil.
Bah tout dépend. pour ce genre de cas tu peux faire un reset time sur les actions tels que mousemove/click/keydown.. sur tout les body de chaque page

exemple :

attachEvent(window,'load',function(){
  var idleSeconds = 30;
  var idleTimer;
  function resetTimer(){
    clearTimeout(idleTimer);
    idleTimer = setTimeout(whenUserIdle,idleSeconds*1000);
  }
  attachEvent(document.body,'mousemove',resetTimer);
  attachEvent(document.body,'keydown',resetTimer);
  attachEvent(document.body,'click',resetTimer);

  resetTimer(); // Start the timer when the page loads
});

function whenUserIdle(){
  //...
}

function attachEvent(obj,evt,fnc,useCapture){
  if (obj.addEventListener){
    obj.addEventListener(evt,fnc,!!useCapture);
    return true;
  } else if (obj.attachEvent){
    return obj.attachEvent("on"+evt,fnc);
  }
} 

Modifié par JENCAL (22 Jul 2022 - 15:19)