Има ли начин да променям URL адреса на текущата страница, без да презареждам страницата?
Бих искал да имам достъп до частта преди хеша #, ако е възможно.
Трябва да променям само частта след домейна, така че не е като да нарушавам правилата за различните домейни.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
Забележка: Ако работите с браузър HTML5, трябва да пренебрегнете този отговор. Това вече е възможно, както може да се види в другите отговори.
Няма начин да промените URL в браузъра, без да презаредите страницата. URL адресът представя каква е била последната заредена страница. Ако го промените (document.location
), страницата ще се презареди.
Една от очевидните причини е, че пишете сайт на www.mysite.com
, който изглежда като страница за вход в банка. След това променяте лентата с URL адреси на браузъра, така че да казва www.mybank.com
. Потребителят няма да е наясно, че в действителност гледа на www.mysite.com
.
Всяка промяна на местоположението (или window.location
, или document.location
) ще доведе до заявка на този нов URL адрес, ако не променяте само фрагмента на URL адреса. Ако промените URL адреса, променяте URL адреса.
Използвайте техники за пренаписване на URL от страна на сървъра като Apache's mod_rewrite, ако не харесвате URL адресите, които използвате в момента.
Ако не се опитвате да извършите нещо злонамерено, всичко, което искате да направите със собствените си URL адреси, може да се превърне в магия с помощта на htaccess.