Comme l'a fait remarquer Thomas Stjernegaard Jeppesen, vous pouvez utiliser la méthode suivante Histoire.js pour modifier les paramètres des URL pendant que l'utilisateur navigue dans vos liens et applications Ajax.
Près d'un an s'est écoulé depuis cette réponse, et History.js a grandi et est devenu plus stable et multi-navigateur. Il peut désormais être utilisé pour gérer les états de l'historique dans les navigateurs compatibles HTML5 ainsi que dans de nombreux navigateurs HTML4 uniquement. Dans cette démo Vous pouvez voir un exemple de son fonctionnement (ainsi que la possibilité d'essayer ses fonctionnalités et ses limites.
Si vous avez besoin d'aide pour utiliser et mettre en œuvre cette bibliothèque, je vous suggère de jeter un coup d'œil au code source de la page de démonstration : vous verrez que c'est très facile à faire.
Enfin, pour une explication complète des problèmes que peut poser l'utilisation des hachages (et des hashbangs), consultez le document suivant ce lien par Benjamin Lupton.
186 votes
Pour faciliter la compréhension de la question, voici ce que fait Facebook lorsque vous ouvrez une photo, par exemple. La barre d'adresse change pour pointer DIRECTEMENT vers cette photo, de sorte que vous pouvez partager l'URL sans perdre l'endroit où vous vous trouvez dans le site. Vous vous souvenez des sites basés sur le cadrage de la dernière décennie ? Vous ne pouviez obtenir que l'URL de la page d'accueil, car seuls les cadres internes changeaient. Et c'était terrible.
7 votes
Alors que
history.pushState()
est probablement la bonne réponse ici, dans cette situation (en fonction des circonstances exactes...), la possibilité d'utiliser une redirection côté serveur (comme via l'utilisation de la directive RewriteRule d'Apache) est quelque chose que vous pourriez envisager, ou du moins connaître. J'ai simplement pensé qu'il fallait le mentionner !13 votes
window.history.replaceState(null, document.title, "/page2.php")
est probablement ce que la plupart des gens recherchent.