document.location riscrittura senza caricamento
-
05-10-2019 - |
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?
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