Aide avec window.history.pushState

J’ai besoin d’aide avec la syntaxe.

Mon site charge les articles de blog dans #board div en utilisant AJAX et je le ferme en cliquant sur #close. Quand je charge un article, l’URL devient comme ceci http://www.visualise.ca/#!/anne-au-cherry et je voudrais revenir à http://www.visualise.ca/ lorsque je ferme poster. Ce qui suit me donne http://www.visualise.ca/#/

$("#close").live("click", function(event) { $("#board").slideUp("slow"); window.location.hash = "#/"; window.history.pushState(null,null,site_url+"/"); return false; }); 

1) Quelqu’un peut aider s’il vous plaît?

2) Que faire si le navigateur ne supporte pas html5?

Merci beaucoup pour votre temps et votre aide.

MISE À JOUR: This Works, il y avait une faute de frappe dans ma variable ‘site_url’.

PushState ne fonctionne pas sur le hachage. Si vous voulez qu’il soit compatible

PushState change l’URL sans changer de page:

Si vous voyez l’historique comme un tableau, history = [];

Vous ouvrez la page d’accueil vide de votre navigateur et allez à la page1.html

maintenant l’historique est = ['page1.html'] .

Si vous déclenchez pushState à partir de page1.html avec l’URL page2.html, l’historique est maintenant ['page1.html','page2.html'] et la barre d’adresse affiche page2.html.

Si le navigateur ne supporte pas PushState, il ne fait rien. Donc, pour votre exemple:

 $("#close").live("click", function(event) { $("#board").slideUp("slow"); window.history.pushState(null, null, site_url+"/"); return false; }); 

Et quand vous chargez votre ajax:

 window.history.pushState(null,null,site_url + "/" + ajax_url); 

Si vous voulez utiliser du hasch, vous pouvez faire quelque chose comme ceci:

 $("#close").live("click", function(event) { $("#board").slideUp("slow"); window.location.href = "#/" return false; }); 

Et quand vous chargez votre ajax:

 window.location.href = "#/" + ajax_url 

Si vous utilisez pushState, sachez que les URL peuvent cesser de pointer vers des sous-dossiers que vous n’avez pas et que vous avez donc besoin d’une sorte de code de réécriture .htaccess.