Partage
  • Partager sur Facebook
  • Partager sur Twitter

Contrôler l'historique du navigateur

modifier l'action par défaut du bouton précédent

Sujet résolu
    14 décembre 2009 à 18:42:07

    Salut,

    Je suis en train de créer un site qui intègre les XMLHttpRequest. Ces objets me permettent d'envoyer rapidement des requêtes au serveur, puis de modifier la page affichée.
    Je voudrais que l'utilisateur puisse retrouver la page d'origine lors de l'appui sur le bouton précédent.

    Comment faire ?

    • Partager sur Facebook
    • Partager sur Twitter
      14 décembre 2009 à 18:55:54

      Actualisation de la page, ou sinon bah tu fais une requete ajax sur la première page pour la remettre..
      • Partager sur Facebook
      • Partager sur Twitter
        14 décembre 2009 à 19:08:09

        C'est à dire ?
        J'utilise quoi comme objet pour lancer une fonction javascript lorsque l'utilisateur clic sur le bouton précédent du navigateur ?

        • Partager sur Facebook
        • Partager sur Twitter
          14 décembre 2009 à 19:34:03

          Salut !
          Le sujet m'intéresse !

          En fait il m'a semblé voir des sites supportant ce genre de choses.
          Le principe semble être l'ancrage...
          (Quand on clique sur un lien pour aller plus bas sur une page.)

          Je m'explique:
          L'utilisateur est sur la page index.php, il clique sur un lien qui ne le redirige pas sur une autre page mais lui permet d'afficher du contenu supplémentaire sur la page (voir de changer totalement la page), on n'annule pas le lien mais on force à aller à index.php#action.
          Nous n'avons donc pas changé de page, si l'utilisateur clique sur précédent il reste sur la même page ! Mais comment la faire revenir à l'état initial...
          Aucune idée !
          Et c'est évidemment ce qui m'intéresse, si toutefois c'est possible.

          Bonne soirée.
          • Partager sur Facebook
          • Partager sur Twitter
          Venez sur Zeste de Savoir, on est bien :-) . Mon tuto PHPSpec.
            14 décembre 2009 à 19:43:41

            Dans ce cas il suffit de changer le hash de l'url ;)
            • Partager sur Facebook
            • Partager sur Twitter
              14 décembre 2009 à 23:06:00

              Merci cerium50 !
              En faisant quelques recherches sur google, j'ai trouvé ce tuto : http://forum.phpfrance.com/faq-tutorie [...] l-t35431.html

              Mais j'ai l'impression que ça ne marche pas avec chrome... :(

              • Partager sur Facebook
              • Partager sur Twitter
                15 décembre 2009 à 5:23:52

                Tu peux exécuter une fonction dans un setInterval, afin de vérifier constamment l'url actuel et le hash... pour modifier si besoin.

                Ca marche plutôt bien comme méthode.
                • Partager sur Facebook
                • Partager sur Twitter
                  15 décembre 2009 à 14:08:42

                  Non le problème avec chrome c'est qu'il ne considère pas le changement d'url comme le chargement d'une nouvelle page.
                  Donc il n'insère pas de page dans l'historique lors d'un hash.

                  Est-ce qu'il existe une autre méthode compatible avec tous les navigateurs pour insérer une page dans l'historique ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 décembre 2009 à 23:51:53

                    Bah... quand tu modifies l'ancre sous Chrome, l'utilisation du bouton Précédent ramène bien à la position précédente.

                    Démonstration avec ce code :

                    <a href="#test">Go !</a>
                    <button onclick="location.hash='test'">Go !</button>
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
                    <div id="test">ICI !</div>
                    


                    Mais par contre, si tu as modifié le contenu de la page, il ne sera pas rechargé (seule la position de la scrollbar sera éventuellement modifiée).

                    D'où l'intérêt de lancer régulièrement une fonction qui vérifie la correspondance entre le hash et le contenu, afin de modifier le contenu si le hash a changé.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 décembre 2009 à 11:32:32

                      Pas con !

                      Mais si l'utilisateur change l'adresse lui-même, il risque d'y avoir un problème...

                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 décembre 2009 à 12:03:01

                        Bah... non.

                        S'il change l'adresse, la vérification régulière se chargera de modifier le contenu également.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 décembre 2009 à 13:27:17

                          Ba oui je suis bete !

                          C'est bon j'ai compris
                          Merci pour ton aide :)


                          EDIT -------------

                          Page très complète sur le sujet (en anglais) : http://ajaxpatterns.org/Unique_URLs
                          Pour ceux qui tomberai sur ce post...

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Contrôler l'historique du navigateur

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown