Désactiver le bouton back du browser

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 514 fois - Téléchargée 17 fois

Contenu du snippet

Le bouton back est un élément essentiel du browser.
Il permet de revenir à la page précédente.
Mais il est parfois nécessaire, dans certaines applications propriétaires sécurisées, d'interdire l'usage du bouton back et d'obliger l'utilisateur à utiliser la navigation propre à l'application.
Ce script renvoie le visiteur à la page (contenue dans le cache) où le bouton back avait été cliqué.
A placer dans le head.

Source / Exemple :


<script type="text/javascript">
function noBack(){window.history.forward()}
noBack();
window.onload=noBack;
window.onpageshow=function(evt){if(evt.persisted)noBack()}
window.onunload=function(){void(0)}
</script>

Conclusion :


Le script fonctionne sous MSIE, Firefox, Safari et Opera.
Ne l'utilisez qu'en cas de réelle nécessité : il est très désagréable de visiter un site et de s'y retrouver piégé.
Vous risqueriez de faire fuir vos visiteurs.
Exemple sur
http://users.skynet.be/mj/noback/page_1.html

A voir également

Ajouter un commentaire

Commentaires

FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
C'est une mauvaise solution.
Car si JavaScript est désactivé, ton visiteur accédera quand même à la page.
Disons que cela peut être une manière de le faire comprendre au visiteur, mais le serveur devra, lui, toujours gérer les "retours arrières" possibles du surfeur.

Mieux vaut faire expirer la page via les headers, par exemple.
cs_Martin72
Messages postés
6
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
19 juillet 2008
-
Bien sûr, si le retour à la page précédente constitue un réel danger, cela ne suffit pas.
Plutôt que "interdire" et "obliger", il vaudrait mieux écrire "empêcher" et "convaincre".

Quelle est ta solution via headers ?
FREMYCOMPANY
Messages postés
278
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
22 décembre 2008
-
Les headers permettent de faire expirer un page très rapidement et d'empêcher sa mise en cache. Dans de telles conditions, l'appui sur le bouton précédent devrait (je n'ai pas testé tous les navigateurs car je n'ai encore jamais appliqué cette technique) ne plus s'afficher et être remplacée par un message d'erreur "La page a expiré". Enfin, cela n'est vrai que si la page a reçu des données par POST, il me semble. C'est en tout cas à vérrifier.

Sinon, je voulais quand même ajouter quand ton code marche normalement assez bien pour l'utilisateur non-averti.
runinho
Messages postés
43
Date d'inscription
mardi 15 juillet 2008
Statut
Membre
Dernière intervention
10 juillet 2010
-
Comme fremycompany l'a dis c une movaise solution
cs_Martin72
Messages postés
6
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
19 juillet 2008
-
Ma foi, tant que personne n'en propose de meilleure...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.