Partage
  • Partager sur Facebook
  • Partager sur Twitter

Javascript Url

Sujet résolu
    8 octobre 2008 à 0:46:53

    Bonjour,

    j'aimerai savoir si il était possible en javascript de changer les données qui se trouve dans l'url ... sans soumettre la page ? :-°

    Je sais que pour modifier la valeur d'un div par exemple on peut faire quelque chose dans ce genre : getElementById('toto').value='titi' (je me rappelle plus la syntaxe exact). Dans ce cas là, on change le texte contenu dans le div SANS SOUMETTRE LA PAGE.

    Comment peut on faire pour modifier l'url sans soumettre la page ? (Si c'est possible)

    Thank :p
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2008 à 0:50:45

      Je ne comprends pas très bien l'intérêt de la chose.
      Si le but est de traiter des variables GET en PHP, la page devra de toute façon être rechargée pour que PHP prenne en compte cette modification dans les variables d'URL, puisque le code PHP est lu par le serveur => au chargement de la page.
      Si le but est de traiter ces informations sans recharger la page, et donc en javascript, nul besoin de passer par l'url, des variables javascript font l'affaire.
      Si le but n'est pas de toucher à des variables GET, mais carrément à l'adresse indiquée par le navigateur, ce n'est pas possible, le navigateur indique la page sur laquelle il se trouve. Changer l'url affiché implique donc forcément de recharger la page en envoyant vers le nouvel url (avec windows.location).

      Donc... pourrais-tu décrire plus précisément ce que tu veux faire, et pourquoi tu veux le faire ? :p
      • Partager sur Facebook
      • Partager sur Twitter
        8 octobre 2008 à 1:10:06

        Merci de répondre aussi vite ^^

        Désolé je n'ai pas précisé ce que je voulais faire :p

        Dans mon site, certains liens sont en JS. Ces liens ne font que rafraichir un div (donc le reste de la page ne change pas). Or avec cette méthode si on raffraichi la page, on retombe sur la page du début. Idem, les retours en arrière ne sont pas possible.

        Ce que je veux, c'est que quand on clic sur mes liens l'url change et le div aussi ... il n'y a que ces éléments qui changent. Tu vois ? :euh: Ainsi quelque soit l'endroit ou je me trouve, je pourrai rafraichir ma page et/ou faire retour en arrière car quand je rafraichirai ma page, je serai sur la bonne !
        • Partager sur Facebook
        • Partager sur Twitter
          8 octobre 2008 à 1:13:17

          Ce n'est malheureusement pas possible. Du contenu mis à jour dynamiquement en javascript n'est mis à jour que tant que la page reste affichée et n'entre pas du tout dans le flux de l'historique du navigateur. Désolé :p
          • Partager sur Facebook
          • Partager sur Twitter
            8 octobre 2008 à 1:21:13

            Ok dans ce cas, as tu un conseil à me proposer ? :o

            Car je ne vois pas l'utilité de recharger la page si il n'y a qu'un pauvre article qui change :euh:
            • Partager sur Facebook
            • Partager sur Twitter
              8 octobre 2008 à 1:26:25

              Bah, recharger une page n'a rien de terrible puisque les navigateurs font une mise en cache et ne rechargent plus les images et le design à chaque changement de page. C'est ainsi que fonctionnent la très grande majorité des sites, avec un changement de page lors de la navigation.
              Sans compter que même si tu fais le changement dynamiquement en javascript, tu dois prévoir une alternative sans javascript avec rechargement de la page pour les utilisateurs ayant désactivés javascript.
              • Partager sur Facebook
              • Partager sur Twitter
                8 octobre 2008 à 1:35:41

                yes !
                par défaut tous les liens ne sont pas en js. L'utilisateur peut donc choisir.

                Je posai cette question car pour afficher une page je fais de nombreuses requêtes sql. On si je peux en faire qu'une :p (juste celle qui permet de modifier le contenu de UN div) je serai bien ^^

                Oublions alors ... si l'utilisateur choisit l'option "liens en js" il ne pourra pas faire de retour en arrière vu qu'il n'y aura rien dans l'historique ... c dommage :lol:
                • Partager sur Facebook
                • Partager sur Twitter
                  8 octobre 2008 à 19:37:37

                  Il n'y a effectivement pas moyen de modifier l'URL de la page en Javascript et ce pour raison de sécurité (à cause du phishing notamment), en revanche tu peux modifier le hash de l'URL. Ce dernier est en fait ce que tu ajoutes à la fin d'une URL et que tu précèdes d'un dièse #.

                  Et l'historique est bien mis à jour !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 octobre 2008 à 19:43:42

                    Wow, et bien, ça c'est bon à savoir :)
                    Merci pour l'info !

                    EDIT : beuh, déçu. Cela permet de stocker dans l'historique, mais évidemment, cela ne stock pas les modifications qui ont été faites en javascript. Du coup on peut revenir en arrière dans les hash mais ça ne fait pas revenir l'affichage en arrière (c'était logique, mais l'espoir fait vivre :p). Absolument inutilisable pour conserver un historique de "navigation" en javascript, donc :(
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 octobre 2008 à 19:55:02

                      Citation : Elias

                      beuh, déçu. Cela permet de stocker dans l'historique, mais évidemment, cela ne stock pas les modifications qui ont été faites en javascript.


                      J'avais oublié de mentionner cela oui :-° .

                      Citation : Elias

                      Du coup on peut revenir en arrière dans les hash mais ça ne fait pas revenir l'affichage en arrière


                      Effectivement, en revanche ça te permet de faire des pages avec des urls statiques. Suffit simplement d'adapter le script JS pour qu'il charge tel ou tel contenu en fonction du hash.

                      D'ailleurs je me demande si en faisant cela et en désactivant le cache alors il n'y aurait pas moyen de faire en sorte que le retour en arrière fonctionne, je te laisse essayer si tu en as le courage ^^ .

                      Edit : D'ailleurs, je crois que j'essaierai moi-même... parce que si je connaissais l'existence du hash c'est pas pour rien, je veux me faire un portfolio sans rechargement de page :p .
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 octobre 2008 à 20:10:44

                        Nop, c'est inutilisable pour revenir en arrière puisque le navigateur ne garde pas un historique de toutes les modifications faites en javascript (sinon imagine la galère avec les scripts qui passent par une boucle pour "ouvrir" progressivement une div ou afficher quelque chose avec un effet d'opacité progressive :p ).
                        Et puis plutôt que de stocker des variables destinées directement au javascript de la page courante en les mettant dans l'url, autant les stocker dans des variables javascript, non ? :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 octobre 2008 à 21:47:27

                          Citation : Elias

                          Et puis plutôt que de stocker des variables destinées directement au javascript de la page courante en les mettant dans l'url, autant les stocker dans des variables javascript, non ? :-°


                          On ne s'est pas bien compris, je voulais dire que si, par exemple, dans le hash se trouve "livre_or" alors le JS va charger la page du livre d'or ;) . En clair, tu as un lien permanent et tu peux donc le fournir à n'importe qui en étant sûr qu'il tombera bien sur le livre d'or.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 octobre 2008 à 23:04:45

                            C'est un truc pour lequel j'avais cogité pendant un moment car je voulais réaliser un site sans rechargement de page mais aussi pratique qu'un site "normal", seulement la mise en place est assez complexe surtout si, comme moi, tu tiens à faire site compatible avec et sans Javascript ^^ .
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 octobre 2008 à 23:17:36

                              L'enrichissement progressif est la solution :)
                              Mais on devrait peut-être continuer cette discussion en privé :p
                              • Partager sur Facebook
                              • Partager sur Twitter
                                8 octobre 2008 à 23:54:47

                                Si on a toutefois quelque chose de plus à se dire, ce qui ne semble pas être le cas, je crois qu'on a fait le tour ^^ .

                                Au passage, sur ta page d'accueil (de ton site bien sûr) tu as écrit "Sur ce vite" :-° .
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Javascript Url

                                × 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