Tworzę aplikację internetową. W nim mam sekcję o nazwie kategorie, która za każdym razem, gdy użytkownik kliknie jedną z kategorii, panel aktualizacji ładuje odpowiednią zawartość.
Po kliknięciu przez użytkownika kategorii, z której chcę zmienić adres URL paska adresu przeglądarki
www.mysite.com/products
do czegoś takiego
www.mysite.com/products/{selectedCat}
bez odświeżania strony.
Czy istnieje jakiś rodzaj interfejsu API JavaScript, którego mogę użyć, aby to osiągnąć?
źródło
path
i / lubquery string
w adresie URL; nie mogą zmienić protokołu, domeny ani portu (ponieważ byłby to problem z bezpieczeństwem, jak wskazywali inni). Powyższahash
funkcja może zmienić kotwicę (lub identyfikator fragmentu)Aby dodać do tego, co już powiedzieli faceci, edytuj właściwość window.location.hash tak, aby pasowała do adresu URL, który chcesz w funkcji onclick.
źródło
Uważam, że bezpośrednie manipulowanie paskiem adresu na zupełnie inny adres URL bez przechodzenia do tego adresu URL jest niedozwolone ze względów bezpieczeństwa, jeśli jesteś z tego zadowolony
www.mysite.com/products/#{selectedCat}
tj. link w stylu kotwicy na tej samej stronie, a następnie przejrzyj różne skrypty historii / przycisku „Wstecz”, które są obecnie obecne w większości bibliotek javascript.
Wzmianka o panelu aktualizacji prowadzi mnie do przypuszczenia, że używasz asp.net, w takim przypadku kontrola historii Ajax asp.net jest dobrym miejscem do rozpoczęcia
źródło
Nie sądzę, żeby to było możliwe (przynajmniej zmiana na zupełnie inny adres), ponieważ byłoby to nieintuicyjne niewłaściwe użycie paska adresu i mogłoby promować ataki phishingowe.
źródło
Nie można tego zrobić tak, jak to mówisz. Metoda sugerowana przez somej.net jest najbliższa, jaką możesz uzyskać. W rzeczywistości jest to bardzo powszechna praktyka w erze AJAX. Nawet Gmail tego używa.
źródło
zgodnie z sugestią sanchothefat powinien być jedynym sposobem na zrobienie tego. Ponieważ we wszystkich miejscach, w których widziałem tę funkcję, jest cały czas po znaku # w adresie URL.
źródło