Er der en måde, hvorpå jeg kan ændre URL'en for den aktuelle side uden at genindlæse siden?
Jeg vil gerne have adgang til den del før # hash hvis muligt.
Jeg har kun brug for at ændre den del efter domænet, så det er ikke som om jeg overtræder politikker på tværs af domæner.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
BEMÆRK: Hvis du arbejder med en HTML5-browser, bør du ignorere dette svar. Dette er nu muligt, som det fremgår af de andre svar.
Der er ingen mulighed for at ændre URL i browseren uden at genindlæse siden. URL'en repræsenterer, hvad den sidst indlæste side var. Hvis du ændrer den (document.location
), så vil siden blive genindlæst.
En indlysende årsag er, at du skriver et websted på www.mysite.com
, der ligner en login-side for en bank. Så ændrer du browserens URL-linje til at sige www.mybank.com
. Brugeren vil være helt uvidende om, at han i virkeligheden ser på www.mysite.com
.
Enhver ændring af loction (enten window.location
eller document.location
) vil medføre en forespørgsel på den nye URL, hvis du ikke blot ændrer URL-fragmentet. Hvis du ændrer URL'en, ændrer du URL'en.
Brug server-side URL-rewrite-teknikker som Apaches mod_rewrite, hvis du ikke bryder dig om de URL'er, du bruger i øjeblikket.
Hvis du ikke forsøger at gøre noget ondsindet, kan du trylle alt det, du gerne vil gøre ved dine egne URL'er, til at blive til med htaccess.