2009-06-18 8 views
1

J'ai créé une page en utilisant JQuery et Ajax qui aide un utilisateur à filtrer à travers une série d'options et, finalement, affiche une liste filtrée de produits répondant à leurs spécifications.Ajax bouton de retour avec le contenu dynamique

Tout cela fonctionne très bien. Le problème que j'ai est le problème de "bouton Précédent" avec Ajax, je sais comment contourner ceci avec des ancres sur le contenu statique (à savoir Filter.php # Step2).

Toutefois, la page fonctionne en renvoyant une liste de spécifications du produit, lorsqu'un lien de spécification est cliqué, Ajax charge la même page en appliquant les paramètres de liens, ceci est répété jusqu'à six fois, après quoi l'utilisateur est redirigé à l'URL du produit filtré.

Si l'utilisateur clique ensuite sur "Retour", alors bien sûr, la page de filtre se recharge à partir de l'étape 1 plutôt qu'à la dernière étape (étape 6).

Est-ce que quelqu'un sait si c'est même possible?

Répondre

1

Chaque fois que vous voulez être en mesure de revenir à l'étape précédente, le changement window.location.hash.

Ie.

window.location.hash = 'step1'; 

Cela modifie la partie #foo dans l'URL. Vous aurez également besoin d'une minuterie en JavaScript qui vérifie si le hachage a été changé, car il n'y a aucun moyen de détecter de manière fiable en appuyant sur le bouton de retour. Quelque chose le long des lignes de ...

var oldHash = window.location.hash; 
setInterval(function(){ 
    if(window.location.hash != oldHash) { 
    //the hash was changed, do something 
    } 
}, 50); 

J'espère que cette aide

+0

Votre message m'a rappelé un tutoriel que j'ai lu il y a un certain temps à http://yensdesign.com/2008/11/creating-ajax-websites-based-on-anchor-navigation/ Je vais le donner pour voir si c'est approprié. – ticallian

0

Je ne peux pas dire que j'ai implémenté cela avant personnellement, mais je me souviens que le composant de l'onglet Outils de jQuery faisait quelque chose de similaire. Je ne suis pas sûr que cela fonctionnera pour votre situation particulière, mais il peut être utile de regarder leur approche comme point de départ.

jQuery Tools AJAX:ed tabs with History support

+0

j'avais un peu regarder cela et je pense qu'il est conçu pour le contenu statique plutôt que d'attraper les querystrings dynamiques. – ticallian

Questions connexes