Posizione del browser di aggiornamento Jquery, non reindirizzare
Domanda
Sto costruendo una serie di fisarmoniche di base per un progetto.
Vogliamo che abbiano pagine statiche e collegabili. Quindi abbiamo creato pagine individuali anche per ciascuno degli stati aperti.
Ad esempio,
/ whoweare è il dispositivo di scorrimento principale.
Ma abbiamo un sotto-cursore situato in / Chisiamo / whatwedo
Quello che sto cercando di fare è quando un utente fa clic su un'intestazione su / whoweare, il dispositivo di scorrimento si apre e la barra dell'URL si aggiorna a / whoweare / whatwedo, ma non esiste un reindirizzamento effettivo. La posizione dell'URL dovrebbe semplicemente cambiare, niente di più.
Ho provato a usare
window.location.replace($(this).attr('href'));
return false;
Ma questo non sembra aver realizzato ciò che volevo, ma si ricarica ancora in una nuova pagina.
Altri suggerimenti?
Soluzione
Non è possibile modificare l'URL senza reindirizzamento: sarebbe un incubo di phishing (cambiando l'URL in quello di una banca durante il soggiorno sul sito di phishing, ad esempio).
Puoi solo manipolare l'hash del documento, ovvero http://domain.com/#identifier - che è il modo in cui Google, Facebook, ecc. forniscono ai siti AJAX il supporto per la cronologia del browser.
Duplicazione esatta di # 352343 Modifica del browser & # 8217; barra degli indirizzi s senza aggiornamento .
aggiornamento: HTML5 ora consente pushState
, ma solo all'interno dello stesso dominio.
Altri suggerimenti
Dai un'occhiata al plugin bbq jQuery di Ben Alman
$ .bbq.pushState () - http : //benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/