Page 1 sur 1

Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 16:47
par Lefebvresdesigns
Bonjour voilà j'ai sur mon site des boutons retour à la page précédente ils fonctionnent correctement sous firefox mais pas sous le dernier IE alors ma question est toute simple quel est le code qui permettra à tout navigateur d'exécuter correctement l'action demandée (sachant que le javascript avec go -1 ne fonctionne pas correctement non plus sous le dernier IE) ?

Voici le code actuel de mon bouton :
<div class="bouton-retour" onclick="<?php echo $_SERVER['HTTP_REFERER'] ?>"><a href="<?php echo $_SERVER['HTTP_REFERER'] ?>">Retour</a></div>

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 17:09
par misterflo
Salut,
Le HTTP_REFERER n'est pas du tout fiable, il peut être vide ou modifié.
Le mieux est le history.go(-1) ou le history.back() (qui marche très bien sur IE8 et IE9 de mon côté d'ailleur :? )

Sinon tu peux toujours mettre dans une variable de SESSION la page précédente où été l'internaute, et l'afficher dans le lien du bouton retour.

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 17:27
par Lefebvresdesigns
Salut,
Le HTTP_REFERER n'est pas du tout fiable, il peut être vide ou modifié.
Le mieux est le history.go(-1) ou le history.back() (qui marche très bien sur IE8 et IE9 de mon côté d'ailleur :? )

Sinon tu peux toujours mettre dans une variable de SESSION la page précédente où été l'internaute, et l'afficher dans le lien du bouton retour.
Il me semble préférable de stocker dans une variable de session la page précédente car history.back() ne fonctionne pas parfaitement sous IE même sous le vôtre, petit exemple :

  1. A l'aide de votre navigateur IE, rendez-vous sur cette page : http://lefebvresbook.monespace.net/infographie.php ;
  • Cliquez sur une des créations pour voir les détails ;
  • Cliquez sur le bouton retour...
[/b]

Là vous vous retrouvez sur la page http://lefebvresbook.monespace.net/portfolio.php au lieu de celle-ci http://lefebvresbook.monespace.net/infographie.php !

Maintenant sachant que les 2 solutions ne fonctionnent pas comment puis-je stocker ces valeurs en session si je ne peux pas passer par ces fonctions pour récupérer l'adresse de la page précédente ?

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 17:43
par misterflo
Effectivement, cela ne marche pas !
J'ai testé en local et sur des sites où il y a history.go(-1) et ca marche très bien mais sur ton site non...étrange :|

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 17:51
par Lefebvresdesigns
Effectivement, cela ne marche pas !
J'ai testé en local et sur des sites où il y a history.go(-1) et ca marche très bien mais sur ton site non...étrange :|
J'obtiens le même effet avec history.go(-1)

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 18:06
par misterflo
Quand tu mets avec history.back ou en -1, tu l'écris comme ceci ?
<div class="bouton-retour" onclick="history.back()"><a onclick="history.back()">Retour</a></div>
ou comme ceci ?
<div class="bouton-retour" onclick="history.back()">Retour</div>
Car effectivement, dans le premier cas IE va exécuter les deux codes, il va donc faire 2 retour au lieu d'un !

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 18:15
par Lefebvresdesigns
Quand tu mets avec history.back ou en -1, tu l'écris comme ceci ?
<div class="bouton-retour" onclick="history.back()"><a onclick="history.back()">Retour</a></div>
ou comme ceci ?
<div class="bouton-retour" onclick="history.back()">Retour</div>
Car effectivement, dans le premier cas IE va exécuter les deux codes, il va donc faire 2 retour au lieu d'un !
Comme ceci (avec double écriture car le <a> ne fait pas toute la hauteur du bouton) ce qui normalement devrait être bon hors cela ne fonctione pas :

<div class="bouton-retour" onclick="history.back()"><a href="javascript:history.back()">Retour</a></div>

(ici je ne peux mettre le code au format code (a l'aide des balises prévues pour '
') sinon dans ce forum il affiche un #48 ou truc du genre à la place des ':' )

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 19:38
par Lefebvresdesigns
Voilà mon problème est résolu, suite au constat que lorsque je cliquais sur la zone non concernée par le <a> mais tout en restant sur le le bouton le navigateur IE me redirigeais correctement vers la page précédente, j'ai remplacé le <a> par un <u> (car le code était souligné, j'aurais pu faire un <span> avec une autre classe entre autres...), j'ai appliqué sur ce <u> les mêmes classes que sur le <a>.

:D Et hop ! ça fonctionne ! :D

Voici le code en question :
<div class="bouton-retour" onclick="history.back()"><u>Retour</u></div>
C'est bon à savoir pour tous ceux qui se retrouvent dans la même situation ou le <a href="javascript:history.back()"> ne fonctionne pas !

Mot de la fin : Internet Explorer est une vraie "dobe" pour être gentil !

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 20:55
par misterflo
En même temps c'était bizarre de mettre un lien vers la page précédente à l'intérieur d'une div qui au clique renvoyée elle aussi vers la page précédente :mrgreen: :mrgreen:

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 21:03
par Lefebvresdesigns
En même temps c'était bizarre de mettre un lien vers la page précédente à l'intérieur d'une div qui au clique renvoyée elle aussi vers la page précédente :mrgreen: :mrgreen:
c'était pour le javascript j'ai entendu dire qu'il était parfois non interprété

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 14 mars 2011, 23:25
par moogli
effectivement il n'est pas interprété quand le client le désactive, on qu'il ne l’interprète pas (de plus en plus rare :) )

@+

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 24 mars 2011, 00:18
par Yosh
Je pense que l'idéal pour se genre de lien, c'est de créer un gestionnaire d'url qui va stocker les n dernière urls visitées de ton application/site, ce qui te permet d'afficher un lien avec un href pointant sur l'avant dernière url visité.

C'est ce que je ferais plutôt.

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 16 avr. 2011, 12:58
par Lefebvresdesigns
Je pense que l'idéal pour se genre de lien, c'est de créer un gestionnaire d'url qui va stocker les n dernière urls visitées de ton application/site, ce qui te permet d'afficher un lien avec un href pointant sur l'avant dernière url visité.

C'est ce que je ferais plutôt.
Salut, peux tu m'expliquer comment tu aurais fais (le code) pour stoker ces URLs ce serait intéressant !

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 19 avr. 2011, 23:04
par Yosh
Sans te donner le code, j'aurais créer un registre/historique d'urls, genre qui garde les dix dernières urls avec un système de premier entré / premier sorti comme ça tu n'a plus qu'a faire un echo de la valeurs que tu veux (dernière, avant dernière page).

Ca te permet plein de liberté du coup.

Re: Obtenir un bouton retour compris par tout navigateur

Posté : 24 avr. 2011, 12:37
par Lefebvresdesigns
Sans te donner le code, j'aurais créer un registre/historique d'urls, genre qui garde les dix dernières urls avec un système de premier entré / premier sorti comme ça tu n'a plus qu'a faire un echo de la valeurs que tu veux (dernière, avant dernière page).

Ca te permet plein de liberté du coup.
Salut,
Comment tu les récupères aussi ces urls ?