Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BLOQUER LE RETOUR ARRIÈRE DU NAVIGATEUR ....


Information sur la source

Catégorie :Navigation Niveau : Débutant Date de création : 04/05/2005 Date de mise à jour : 04/05/2005 20:57:17 Vu / téléchargé: 14 109 / 387

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Le retour arrière peut parfois être problématique pour la cohérence des données gérées par le biais de page HTML.
Cependant, cette commande est intrinsèque aux navigateurx et ne peut être directement modifée.

Voici donc un petit bout de code pour contrer cette fonctionnalité et assurer un déroulement continu dans vos pahes HTML.

Tecm@n
 

Source

  • <HTML>
  • <HEAD>
  • <TITLE>NoBack (episode 1)!</TITLE>
  • <script language="JavaScript">
  • // Si vous utilisez se script, merci de m'en informer : tecman_one@yahoo.fr
  • //
  • // Ne pouvant contrer le retour arriere du navigateur,
  • // ou par d'autres appels ("window.history.back()")
  • // le principe est assez simple :
  • // Il suffit lors du retour arriere de demander de revenir en avant.
  • //
  • // En final, on fait un saut arriére qui commande directement un saut avant.
  • // => Retour à la page !
  • //
  • window.history.forward();
  • // Afin de démontrer le déroulement du processus
  • // Cette premiére page en construit (=appel) une autre.
  • // Cette page suivante utilise le processus décrit plus haut.
  • //
  • // Donc page 1 => page 2 => page 2 ...
  • //
  • // Pour certain navigateur, le processus nécessite l'utilisation
  • // de la méthode onUnLoad de la page (déchargement).
  • // Ceci explique l'implémentation de 'onunload="window.history.forward();"'
  • function page() {
  • var w=window.document;
  • w.write("<HTML><HEAD><TITLE>NoBack (episode 2 ET FIN) !</TITLE>");
  • w.write("<script language=\"JavaScript\">window.history.forward();");
  • w.write("<\/SCRIPT>");
  • w.write("</HEAD><body onunload=\"window.history.forward();\">");
  • w.write("<FONT FACE=\"Arial\" SIZE='-1' COLOR=\"blue\">");
  • w.write("<FORM><CENTER>");
  • w.write("Appuyer sur le bouton \"Back\" pour revenir &agrave; la page pr&eacute;c&eacute;dente");
  • w.write("<BR><BR><BR>");
  • w.write("<INPUT TYPE=\"button\" value=\"Back\" onClick=\"window.history.go(-1)\">");
  • w.write("<BR><BR><BR>");
  • w.write("Ou cliquez le lien <A HREF=\"javascript:window.history.back()\">Back</A>");
  • w.write("<BR><BR><BR>");
  • w.write("Ou essayez avec le bouton du navigateur.");
  • w.write("</FORM></CENTER></FONT>");
  • w.write("<FONT FACE=\"Arial\" SIZE='-1' COLOR=\"blue\">");
  • w.write("<p align=\"right\">&copy\;<a href=\"mailto\:tecman_one@yahoo.fr?subject");
  • w.write("=Code%20Javascript%20NoBack\"> Tecm@n</a></p></FONT>");
  • w.write("</BODY></HTML>");
  • w.close;
  • }
  • </SCRIPT>
  • </HEAD>
  • <body onunload="window.history.forward();">
  • <FONT FACE="Arial" SIZE='-1' COLOR="blue">
  • <FORM><CENTER>
  • Voici une suite de page, sans retour arriere.
  • <BR><BR><BR>
  • <INPUT TYPE="button" value="Suite" onClick="page();">
  • <BR><BR><BR>
  • </FORM></CENTER></FONT>
  • <FONT FACE="Arial" SIZE='-1' COLOR="blue">
  • <p align="right">&copy;<a href="mailto:tecman_one@yahoo.fr?subject=Code%20Javascript%20NoBack"> Tecm@n</a></p>
  • </FONT>
  • </BODY></HTML>
<HTML>
<HEAD>
<TITLE>NoBack (episode 1)!</TITLE>
<script language="JavaScript">
// Si vous utilisez se script, merci de m'en informer : tecman_one@yahoo.fr

//
// Ne pouvant contrer le retour arriere du navigateur,
// ou par d'autres appels ("window.history.back()")
// le principe est assez simple :
// Il suffit lors du retour arriere de demander de revenir en avant.
// 
// En final, on fait un saut arriére qui commande directement un saut avant.
// => Retour à la page !
//

window.history.forward();

// Afin de démontrer le déroulement du processus
// Cette premiére page en construit (=appel) une autre.
// Cette page suivante utilise le processus décrit plus haut.
// 
// Donc page 1 => page 2 => page 2 ...
//

// Pour certain navigateur, le processus nécessite l'utilisation
// de la méthode onUnLoad de la page (déchargement).
// Ceci explique l'implémentation de 'onunload="window.history.forward();"'

function page() {
	var w=window.document;
	w.write("<HTML><HEAD><TITLE>NoBack (episode 2 ET FIN) !</TITLE>");
	w.write("<script language=\"JavaScript\">window.history.forward();");
	w.write("<\/SCRIPT>");
	w.write("</HEAD><body onunload=\"window.history.forward();\">");
	w.write("<FONT FACE=\"Arial\" SIZE='-1' COLOR=\"blue\">");
	w.write("<FORM><CENTER>");
	w.write("Appuyer sur le bouton \"Back\" pour revenir &agrave; la page pr&eacute;c&eacute;dente");
	w.write("<BR><BR><BR>");
	w.write("<INPUT TYPE=\"button\" value=\"Back\" onClick=\"window.history.go(-1)\">");
	w.write("<BR><BR><BR>");
	w.write("Ou cliquez le lien <A HREF=\"javascript:window.history.back()\">Back</A>");
	w.write("<BR><BR><BR>");
	w.write("Ou essayez avec le bouton du navigateur.");
	w.write("</FORM></CENTER></FONT>");
	w.write("<FONT FACE=\"Arial\" SIZE='-1' COLOR=\"blue\">");
	w.write("<p align=\"right\">&copy\;<a href=\"mailto\:tecman_one@yahoo.fr?subject");
	w.write("=Code%20Javascript%20NoBack\"> Tecm@n</a></p></FONT>");
	w.write("</BODY></HTML>");
	w.close;
}

</SCRIPT>
</HEAD>
<body onunload="window.history.forward();">

<FONT FACE="Arial" SIZE='-1' COLOR="blue">
<FORM><CENTER>
Voici une suite de page, sans retour arriere.
<BR><BR><BR>
<INPUT TYPE="button" value="Suite" onClick="page();">
<BR><BR><BR>
</FORM></CENTER></FONT>
<FONT FACE="Arial" SIZE='-1' COLOR="blue">
<p align="right">&copy;<a href="mailto:tecman_one@yahoo.fr?subject=Code%20Javascript%20NoBack"> Tecm@n</a></p>
</FONT>
</BODY></HTML>

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 mai 2005 20:56:03 :
-
04 mai 2005 20:57:17 :
Ajout du code source en clair sur le site ;-))

Commentaires et avis

signaler à un administrateur
Commentaire de Arto_8000 le 04/05/2005 23:42:24

Une ligne de code aurait été plus compréhensible plutôt que 50 lignes de commentaire et de code HTML.

signaler à un administrateur
Commentaire de apxa le 05/05/2005 11:58:35

iop
un pragma:no-cache dans l'entete aurait été me semble t'il beaucoup plus simple.

Have Fun

signaler à un administrateur
Commentaire de coucou747 le 05/05/2005 22:19:50

en plus, ça ne protège pas grand chose... juste la lisibilitée...

signaler à un administrateur
Commentaire de tecman le 05/05/2005 23:00:46

You've got right iop.

L'objectif de ces quelques lignes est aussi pédagogique.
(code mis en niveau 1 : débutant).

Pourquoi pisser du code sans l'expliquer ?

Au regard des questions posées il me semblait plus constructif d'avoir une démarche explicative que de se satisfaire d'une suffisance ou d'un nombrilisme égocentré.

Pour la protection, désolé ce n'est pas prévu ! Ce n'est pas le but recherché.

Tecm@n.

signaler à un administrateur
Commentaire de tecman le 05/05/2005 23:04:55

Pourquoi ne pas utiliser le no-cache ?

Je me suis entaché d'essayer de satisfaire une problématique de navigation.
Ta suggestion est tout à fait judicieuse et pertinente.
Cependant, dans le cadre d'échange client-serveur, il est utile de conserver le cache ne serait-ce que pour minimiser les flux inutiles (rechargement de CSS, de logo, js, ...).

Néanmoins, je souligne de nouveau la pertinence et la justesse de ton propos.

Tecm@n

signaler à un administrateur
Commentaire de Arto_8000 le 05/05/2005 23:33:05

On est sur un site de javascript pas de HTML alors que sa soit débutant ou pas , le but n'est pas de donner une leçon de HTML.

Des commentaires utiles sont appréciés pour mieux comprendre le principe ,pas des copyright et du répetage inutile !!!

signaler à un administrateur
Commentaire de tecman le 06/05/2005 00:01:04

Ouhaaa !! Super constructive !!!! Ta démarche Arto.

Quant au répetage (néologisme ?!) et copyright, dsl je 'nai pas l'impression.
Ceci-dit, je ne prétend aucunement d'avoir la primeur de chaque ligne de code ;-)

Essayons d'avancer plutôt que de reculer !!!
Pensons à ceux qui cherchent et qui désirent des solutions (voir msg iop) plutôt que des discussions stériles et puériles.
Merci d'utiliser les commentaires pour commenter et apporter un plus !!!

Tecm@n

signaler à un administrateur
Commentaire de Mindiell le 06/05/2005 10:20:47

Personnellement je suis contre le fait de "limiter" la navigation, mais ca marche. C'est donc une bonne source ^^

signaler à un administrateur
Commentaire de coucou747 le 06/05/2005 10:57:28

perso, je penses que ce code n'est pas mauvais...
je pensais au cache moi aussi, mais les raisons évoqués pour l'emploi du cache sont de bonnes raisons, alors ce code est interessant, bien qu'un peu mal construit dans le sens ou toutes les balises doivent être soit en minuscules soit en majuscules en html, mais on ne doit pas mélanger les deux... En XHTLM, on ne doit employer que les minuscules, et mettre <script type="text/javascript"> au lieu de <script language="javascript">...

signaler à un administrateur
Commentaire de tecman le 06/05/2005 16:17:17

merci coucou747 de rappeler ce principe.
De plus, mélanger les maj et les min perd un peu de lisibillité.
Je prend note !

signaler à un administrateur
Commentaire de Arto_8000 le 06/05/2005 21:49:51

Tu n'as pas l'impression de faire de répétage et de faire d'écrire des choses inutiles ...

"Si vous utilisez se script, merci de m'en informer : tecman_one@yahoo.fr"

Franchement pour une ligne de code.


"Ne pouvant contrer le retour arriere du navigateur,
ou par d'autres appels ("window.history.back()")
le principe est assez simple : ..."

Je nécirirez pas tout ,mais en deux lignes on aurait comprit le principe et dans explication finale cela a plus sa place que dans le code lui-même.

signaler à un administrateur
Commentaire de rbonnal le 13/05/2005 16:27:26

J'ais publié un code sur ce sujet:
http://www.javascriptfr.com/code.aspx?ID=31359
si sa peux etre utile...

signaler à un administrateur
Commentaire de larion le 24/05/2005 14:53:53

Bonjour,

Une autre méthode est d'utiliser : window.location.replace(url)
pour accéder à une page. Cette page ne se met pas dans window.history.
Idéal pour un site avec des frames.

signaler à un administrateur
Commentaire de tecman le 24/05/2005 15:11:11

Bien vu !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.