Vous ne peut pas changer l'url entière sans redirection, ce que vous pouvez faire à la place c'est changer le dièse .
Le site dièse est la partie de l'url qui va après le symbole #. Elle était initialement destinée à vous diriger (localement) vers des sections de votre document HTML, mais vous pouvez la lire et la modifier par le biais de javascript pour l'utiliser un peu comme une variable globale .
Si elle est bien appliquée, cette technique est utile à deux égards :
- l'historique du navigateur se souviendra de chaque étape différente que vous avez franchie (puisque l'url+hash a changé)
- vous pouvez avoir une adresse qui ne renvoie pas seulement à un document html particulier, mais qui donne également à votre javascript un indice sur ce qu'il doit faire. Cela signifie que vous finissez par pointer vers un état à l'intérieur de votre application web.
Pour changer le hachage, vous pouvez faire :
document.location.hash = "show_picture";
Pour surveiller les changements de hachage, vous devez faire quelque chose comme :
window.onhashchange = function(){
var what_to_do = document.location.hash;
if (what_to_do=="#show_picture")
show_picture();
}
Bien sûr, le hachage n'est qu'une chaîne de caractères, et vous pouvez en faire ce que vous voulez. Par exemple, vous pouvez y mettre un objet entier si vous utilisez JSON pour stringifier il.
Il existe de très bonnes bibliothèques JQuery pour faire des choses avancées avec cela.
Bonne chance !