C'è un modo per modificare l'URL della pagina corrente senza ricaricare la pagina?
Vorrei accedere alla parte prima dell'hash # se possibile.
Ho solo bisogno di cambiare la parte dopo il dominio, quindi non è che sto violando le politiche di dominio incrociato.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
NOTA: Se stai lavorando con un browser HTML5 allora dovresti ignorare questa risposta. Questo è ora possibile come si può vedere nelle altre risposte.
Non c'è modo di modificare l'URL nel browser senza ricaricare la pagina. L'URL rappresenta l'ultima pagina caricata. Se lo cambi (document.location
) allora ricaricherà la pagina.
Una ragione ovvia è che tu scrivi un sito su www.mysite.com
che sembra la pagina di login di una banca. Poi cambiate la barra dell'URL del browser per dire www.mybank.com
. L'utente sarà totalmente ignaro del fatto che in realtà sta guardando www.mysite.com
.
Qualsiasi cambiamento della locuzione (sia window.location
che document.location
) causerà una richiesta su quel nuovo URL, se non stai solo cambiando il frammento di URL. Se si cambia l'URL, si cambia l'URL.
Usa tecniche di riscrittura degli URL lato server come mod_rewrite di Apache se non ti piacciono gli URL che stai usando attualmente.
Supponendo che non stiate cercando di fare qualcosa di malevolo, qualsiasi cosa vogliate fare ai vostri URL può essere fatta con htaccess.