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)
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 ?
Désolé je n'ai pas précisé ce que je voulais faire
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 ? 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 !
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é
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.
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 (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
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 #.
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
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 .
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 ).
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 ?
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.
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 .
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" .
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.