Existuje spôsob, ako môžem zmeniť adresu URL aktuálnej stránky bez toho, aby som ju musel znovu načítať?
Ak je to možné, chcel by som získať prístup k časti pred hashom #.
Potrebujem zmeniť len časť za doménou, takže to nie je tak, že by som porušil zásady pre rôzne domény.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
POZNÁMKA: Ak pracujete s prehliadačom HTML5, túto odpoveď ignorujte. Teraz je to možné, ako je možné vidieť v iných odpovediach.
V prehliadači nie je možné zmeniť URL bez opätovného načítania stránky. Adresa URL predstavuje to, aká bola naposledy načítaná stránka. Ak ju zmeníte (document.location
), potom sa stránka načíta znova.
Jedným zo zrejmých dôvodov je, že napíšete stránku na www.mysite.com
, ktorá vyzerá ako prihlasovacia stránka banky. Potom zmeníte lištu URL prehliadača tak, aby na nej bolo napísané www.mybank.com
. Používateľ si vôbec neuvedomí, že sa v skutočnosti pozerá na stránku www.mysite.com
.
Každá zmena lokácie (buď window.location
alebo document.location
) spôsobí požiadavku na novú adresu URL, ak nemeníte len fragment adresy URL. Ak zmeníte adresu URL, zmeníte adresu URL.
Ak sa vám nepáčia adresy URL, ktoré v súčasnosti používate, použite techniky prepisovania adries URL na strane servera, ako napríklad Apache's mod_rewrite.
Za predpokladu, že sa nesnažíte urobiť niečo škodlivé, môžete pomocou htaccess vyčarovať čokoľvek, čo by ste chceli urobiť so svojimi vlastnými adresami URL.