Albo marzyłem o chrome (dev channel) wdrażającym sposób aktualizacji paska adresu za pomocą javascript (ścieżki, a nie domeny) bez ponownego ładowania strony lub naprawdę to zrobili.
Nie mogę jednak znaleźć artykułu, który uważam za przeczytany.
Czy jestem szalony, czy jest na to sposób (w Chrome)?
ps Nie mówię o window.location.hash, i in. Jeśli powyższe istnieje, odpowiedź na to pytanie będzie nieprawdziwa.
javascript
ajax
google-chrome
David Murdoch
źródło
źródło
Odpowiedzi:
Możesz to teraz zrobić w większości „nowoczesnych” przeglądarek!
Oto oryginalny artykuł, który przeczytałem (opublikowany 10 lipca 2010 r.): HTML5: Zmiana adresu URL przeglądarki bez odświeżania strony .
Bardziej dogłębne spojrzenie na pushState / replaceState / popstate (alias API HTML5 History API) znajduje się w dokumentacji MDN .
TL; DR, możesz to zrobić:
Zobacz moją odpowiedź na temat modyfikowania adresu URL bez ponownego ładowania strony, aby uzyskać podstawowe instrukcje.
źródło
../new-url
Lub../../new-url
. Wydają się one robić to, czego można się spodziewać w Chrome przynajmniej.Zmienianie tylko tego, co jest po skrócie - stare przeglądarki
Zmiana pełnego adresu URL. Chrome, Firefox, IE10 +
Powyższe spowoduje dodanie nowego wpisu do historii, dzięki czemu możesz nacisnąć przycisk Wstecz, aby przejść do poprzedniego stanu. Aby zmienić adres URL bez dodawania nowego wpisu do historii, użyj
Spróbuj uruchomić je teraz w konsoli!
źródło
replaceState
było dokładnie to, czego potrzebowałem, dzięki za rozwinięcie oryginalnej odpowiedzi.history.replaceState
dodaj do historii w ff 66.0b1Zaktualizuj odpowiedź Davidsa, aby wykrywać nawet przeglądarki, które nie obsługują pushstate:
źródło
źródło