2009-10-26 3 views
4

Je construis une série d'accordéons de base pour un projet.Jquery Emplacement du navigateur de mise à jour, Ne pas rediriger

Nous voulons qu'ils aient des pages statiques et connectables. Nous avons donc créé des pages individuelles pour chacun des états ouverts.

Par exemple,

/quisommesnous est le curseur principal.

Mais nous avons un sous curseur situé à /quisommesnous/whatwedo

Ce que je suis à la recherche d'avoir fait est, lorsqu'un utilisateur clique sur un en-tête sur/quisommesnous, le curseur s'ouvre, et les mises à jour de la barre d'URL à/whoweare/whatwedo, mais il n'y a pas de redirection réelle. L'emplacement de l'url devrait simplement changer, rien de plus.

J'ai essayé d'utiliser

window.location.replace($(this).attr('href')); 
return false; 

Mais cela ne semble pas avoir accompli ce que je voulais, il reste sur une recharge nouvelle page.

D'autres suggestions?

+0

double possible de [Changer la barre d'adresse du navigateur sans rafraîchir] (http://stackoverflow.com/questions/352343/changing- navigateurs-adresse-barre-sans-rafraîchissante) –

Répondre

11

Vous ne pouvez pas changer l'URL sans la rediriger - ce serait un cauchemar d'hameçonnage (changement d'URL par rapport à celui d'une banque tout en restant sur le site d'hameçonnage, par exemple).

Vous pouvez uniquement manipuler le hachage du document, c'est-à-dire http://domain.com/#identifier, ce qui permet à Google, Facebook, etc., de prendre en charge l'historique des navigateurs des sites AJAX.

Exemplaire exact de #352343 Changing browser’s address bar without refreshing.

mise à jour: HTML5 permet maintenant pushState, mais uniquement dans le même domaine.

+0

Merci pour cela, Je vais juste devoir travailler autour d'elle. – Paul