2014-05-08 3 views
1

Je suis sûr que d'autres ont rencontré ce problème avant, mais cela fait ma tête.Quelle est la meilleure façon javascript pour forcer un popstate sur le retour d'une page différente

J'ai une page qui génère une liste de produits. C'est une longue liste qui peut aller sur plusieurs pages. J'ai les boutons Précédent et Suivant pour y parvenir et ils fonctionnent si l'utilisateur reste avec la liste.

Le problème se produit lorsque l'utilisateur sélectionne un produit dans la liste et navigue vers une nouvelle page pour afficher plus de détails sur le produit. Lorsque l'utilisateur a terminé cette page et quitte, la liste des produits est réaffichée au point où l'utilisateur l'a quittée.

En chrome, le popstate est déclenché, et je dois ajuster le nombre de retours requis (en raison de pushStates que j'ai déjà effectué) sur le popstate suivant afin d'obtenir le bouton retour pour ensuite aller à la bonne page précédente. Dans Firefox, la page est restaurée à partir du cache, et je n'ai pas la possibilité d'intercepter le retour et de faire les ajustements nécessaires.

Existe-t-il un moyen de forcer Firefox à vider le cache et à déclencher le popstate lorsque le bouton de retour ou le bouton de sortie est sélectionné dans la page de détails du produit?

Répondre

0

Je l'ai utilisé ce code jQuery avant, et il fonctionne multiplateformes:

$(window).bind('popstate', jQuery.proxy(function() { 
    // your code here 
}, this)); 

Le code dans la fonction de rappel sera exécuté chaque fois que l'utilisateur appuie sur le bouton de retour.

Il est peu probable qu'il soit facile de forcer Firefox à effacer son cache pour des raisons de sécurité. Voici one tip I found que pourrait travail (non testé par moi). Mais j'espère que vous pouvez utiliser ce rappel pour faire quelque chose d'utile, comme définir votre état de navigation correctement.

Vous pourriez être en mesure de trouver des informations plus utiles here.

Questions connexes