Jak mohu změnit adresu URL, aniž by se stránka znovu načetla?

Mohu nějak změnit adresu URL aktuální stránky, aniž bych ji musel znovu načíst?

Rád bych měl přístup k části před hashem #, pokud je to možné.

Potřebuji změnit pouze část za doménou, takže to neznamená, že porušuji zásady pro různé domény.

 window.location.href = "www.mysite.com/page2.php";  // Sadly this reloads

POZNÁMKA: Pokud pracujete s prohlížečem HTML5, měli byste tuto odpověď ignorovat. Nyní je to možné, jak je vidět v ostatních odpovědích.

Neexistuje žádný způsob, jak změnit URL v prohlížeči bez opětovného načtení stránky. Adresa URL představuje to, jaká byla poslední načtená stránka. Pokud ji změníte (document.location), dojde k opětovnému načtení stránky.

Jedním ze zřejmých důvodů je, že napíšete stránku na www.mysite.com, která vypadá jako přihlašovací stránka banky. Pak změníte řádek URL prohlížeče na www.mybank.com. Uživatel nebude vůbec vědět, že se ve skutečnosti dívá na www.mysite.com.

Komentáře (10)

Jakákoli změna umístění (buď window.location, nebo document.location) způsobí požadavek na novou adresu URL, pokud neměníte pouze fragment adresy URL. Pokud změníte adresu URL, změníte ji.

Pokud se vám nelíbí aktuálně používané adresy URL, použijte techniky přepisu adres URL na straně serveru, jako je Apache's mod_rewrite.

Komentáře (2)

Za předpokladu, že se nesnažíte provést něco škodlivého, lze pomocí htaccess vykouzlit cokoli, co byste chtěli udělat s vlastními adresami URL.

Komentáře (2)