J'ai rêvé de chrome (canal de développement) implémentant un moyen de mettre à jour la barre d'adresse via javascript (le chemin, pas le domaine) sans recharger la page ou ils l'ont vraiment fait.
Cependant, je ne trouve pas l'article que je pense avoir lu.
Suis-je fou ou existe-t-il un moyen de le faire (dans Chrome)?
ps je ne parle pas de window.location.hash, et al. Si ce qui précède existe, la réponse à cette question sera fausse.
javascript
ajax
google-chrome
David Murdoch
la source
la source
Réponses:
Vous pouvez désormais le faire dans la plupart des navigateurs "modernes"!
Voici l'article original que j'ai lu (publié le 10 juillet 2010): HTML5: modification de l'URL du navigateur sans rafraîchissement de la page .
Pour une analyse plus approfondie de pushState / replaceState / popstate (alias l'API HTML5 History), consultez les documents MDN .
TL; DR, vous pouvez le faire:
Voir ma réponse à Modifier l'URL sans recharger la page pour un tutoriel de base.
la source
../new-url
ou../../new-url
. Ils semblent faire ce que vous attendez au moins dans Chrome.Changer uniquement ce qui est après le hachage - anciens navigateurs
Modification de l'URL complète. Chrome, Firefox, IE10 +
Ce qui précède ajoutera une nouvelle entrée à l'historique afin que vous puissiez appuyer sur le bouton Retour pour revenir à l'état précédent. Pour modifier l'URL en place sans ajouter une nouvelle entrée à l'historique, utilisez
Essayez de les exécuter dans la console maintenant!
la source
replaceState
était exactement ce dont j'avais besoin, merci d'avoir développé la réponse originale.history.replaceState
ajouter à l'histoire dans ff 66.0b1Mettez à jour la réponse de Davids pour même détecter les navigateurs qui ne prennent pas en charge pushstate:
la source
la source