Domanda

Sto sviluppando un sistema che è al 100% ajax, tranne naturalmente, la prima richiesta.

Sono interessato a cambiare l'indirizzo nel document.location, utilizzando JavaScript. Ma io non voglio che il browser per caricare la pagina su quel luogo "nuovo".

Qualcuno sa come posso fare questo?

È stato utile?

Soluzione

Per riscrivere l'intero percorso e non solo il "hash" parte, del browser storia API può essere utilizzata, anche se attualmente sembra solo essere supportato in Gecko 1.9.3 / Firefox 4 .

history.replaceState({}, document.title, url)

Altri suggerimenti

Modifica l'URL completo, senza la navigazione non è possibile, solo immaginare il problemi di sicurezza che potrebbe generare.

È possibile modificare solo la location.hash, che è la parte dell'URL che segue il simbolo #:

location.hash = "foo";

Il tuo URL cambierà http://someurl.com/#foo

È possibile utilizzare lo stesso metodo che utilizza Gmail. Aggiungere un ancoraggio alla fine dell'URL, il browser non dovrebbe ricaricare la pagina, ma è possibile leggere le informazioni in document.location.href e agire su di esso. Questo sarà anche mantenere la funzionalità del pulsante Indietro intatta (fornendo vostri supporti javascript esso)

per esempio

prima pagina è http://www.mypage.com/index.php si fa clic per la prossima "pagina" usando <a href="#page2">link</a> e cambia a http://www.mypage.com/index.php#page2

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top