J’ai sur mon site un menu contextuel semblable à la visionneuse de photos de facebook. Lorsque le modal est ouvert, il affiche le contenu d’une autre page et je souhaite modifier la valeur de la barre d’adresse et l’historique pour l’afficher.
Il y a une liste déroulante dans le modal qui modifie le contenu du modal en celui d’une autre page. Lorsque cela se produit, je souhaite à nouveau modifier la valeur de la barre d’adresse et l’historique pour indiquer que la page a été modifiée.
En gros, je veux reproduire exactement le comportement de la visionneuse de photos de Facebook , que vous pouvez essayer en:
Photos
J’ai essayé de créer un JSFiddle pour montrer où j’en suis, mais JSFiddle ne permet apparemment pas de manipuler l’histoire. En tant que tel, j’ai mis mon code en ligne ici et vous pouvez le télécharger ici .
Quelques points clés:
Vous devez utiliser l’historique API, et en particulier l’ historique.pushState history.pushState()
Ainsi, lorsqu’un utilisateur ouvre le modal, vous pouvez faire quelque chose:
history.pushState(stateObj, "page 2", "image\id.html");
Où: stateObj est l’object que vous transmettez à travers l’historique, la page 2 le titre et le dernier paramètre l’URL que vous souhaitez modifier.
Une fois que vous avez terminé, vous devez utiliser un événement popstate, car les boutons Précédent et Suivant du navigateur ne rechargeront pas la page.