Forum de discussion
Forum « Programmation Javascript » (archives)
Re: rediriger une page quand l'utilisateur ne touche plus au clavier ou la souris
Envoyé: 29 mars 2006, 7h36 par Oznog
Alors il faut t'assurer que non seulement l'usager ne peut faire de mise à jour après un certain temp mais aussi qu'il ne pourra voir ce qu'il y à l'écran? C'est que les « timer » n'est pas le meilleurs ami du CPU. Note que même les banques non pas ça. Principalement pour éviter de tapper sur les nerfs d'un usager.
Or donc, tu as une boléenne à faux avec un délais très court qui la remet continuellement à faux pendant qu'une capture d'événement la met à vrais. >>> Si c'est faux, après x temps tu redirige <<< Dans ce cas, la redirection s'effectura une heure après la dernière touche.
Autre solution plus simple pour le CPU, Après un simple délais, tu affiche un popUp avec saisie d'identification, et un délais dans le popUp. Si après le délais aucune identification n'est données, tu redirige (personnellement je ne fais jamais de redirection, L'USAGER PEUT PERDRE UNE MISE À JOUR LAISSER EN PLAN À CAUSE DE X RAISONS!).
Et tout ça avec une option fichier témoins (cookies). Tu notera très vite que l'ergonomie est aussi importante que la sécurité. Or donc, tant que le visuel n'est pas top secret, faut pas paniquer.
Voilà le code pour
<script type="text/javascript" language="javascript">
<!--
// Script gratuit des Trucsweb.com
var bMAJ = false;
var nav4 = window.Event ? true : false;
// Capture de la touche
function twMetAVrais() {bMAJ = true;}
if (nav4) {document.captureEvents(Event.KEYDOWN);}
document.onkeydown = twMetAVrais;
// Tu pourrais ajouter une comparaison de la position de la souris et la capture du click (les deux) mais à moins d'une application d'infographie ou un jeu, les touches sont sufisante.
// Le délais qui remet à false si c'est vrais
// sinon il redirige...
function twSortie() {
if (!bMAJ) {
document.location.href = "http://www.trucsweb.com/";
} else {
bMAJ = false;
}
}
oDelais = setTimeout('twSortie()',10000);
// -->
</script>
Ciao
Oznog
Réponses
|