Bonjour,
Je me suis pas mal balladé de sites en sites sur le sujet du bouton précédent... On peut dire que c'est un marronier !
Mais malheureusement, il semble ne pas y avoir de solution miracle pour gérer le retour à la page précédente.
Ce que j'ai trouvé et qui me convient :
1 2 3 4
| <script language="javascript" type="text/javascript">
if(window.history.forward(1) != null)
window.history.forward(1);
</script> |
Mais cela ne marche que chez moi (sur un IE7), mais pas au boulot, où je teste sur un IE7 aussi. Bizarre !
Alors j'utilise :
1 2 3
| <script language="javascript" type="text/javascript">
window.history.forward()
</script> |
Je place ce script entre les balises <HEAD></HEAD>
Quelques remarques :
1°/
Je voulais faire un lien vers une page Javascript unique pour placer le code. Du style :
<script language="Javascript" src="..\js\commun.js" type="text/javascript"></script>
Mais si je fais ça, ça ne marche pas ! Bizarre aussi...
2°/ Il est important de placer ce code dans HEAD... Car si on utilise une fonction dans le script avec un appel dans BODY (onload="return myfonction();"... Ca marche aussi MAIS on voit la page précédente s'afficher un court instant avant d'être redirigé sur l'autre page... Cà ne le fait pas sur le premier script.
3°/ J'ai essayé aussi en utilisant RegisterStartupScript() en VB.NET pour ajouter le scrit dynamiquement dans la procédure de codebehind Page_Load, mais ça me met le script dans la section BODY et non HEAD...
4°/ J'abandonne l'utilisation de la variable Server HTTP_REFERER. Car j'ai constaté qu'en copiant mon site sur un autre serveur, le HTTP_REFERER n'est plus renseigné à chaque coup... HTTP_REFERER ne devrait pas être utilisé à mon avis... Pas stable du tout ! Faite un Response.Redirect dans le Load d'une page Y après être passé par la page X, sur une page Z. Et bien, la page Z nous donne un HTTP_REFERER = X, car comme le Redirect a été fait dans le Page_Load la page n'a pas été envoyé au Browser, donc il n'a jamais pu remplir le HTTP_REFERER (si j'ai bien compris, c'est le browser qui remplit cette variable).
5°/ Sinon pourquoi vouloir verrouiller l'effet du bouton précédent (ou ALT + flèche gauche) ? Simplement pour éviter des effets de bord dans le mécanisme de l'application...
Pour moi ces boutons sont des vestiges des pages HTML 100% où là, il ne pouvait pas y avoir d'impact.
6°/ Page précédente... mais aussi Actualiser F5... On peut imaginer d'appuyer sur un bouton Enregistrer et si on fait F5, paf, ça rejoue l'enregistrement.
Comment je gère ça ? Page_Load => variable Session FlagEnreg = False
Si on utilise Enregistrer => test sur FlagEnreg, si procédure bien exécutée ensuite alors on passe le FlagEnreg = True.
(Exemple dans le cas où on est sensé appuyer sur ce bouton une seule fois avant d'être redirigé ailleurs...)
Partager