chormi
29.01.2012, 14:44:14
Witam
Mam problem z przywróceniem adresu po użyciu history.pushState. Dajmy na to mam następujący adres:
strona.com/
Za pomocą ww. metody dopisuję do adresu "/site/subsite", więc adres wygląda teraz tak:
strona.com/site/subsite
Założmy, że zamykam zakładkę na stronie i potrzebuję usunąć "site/subsite" z adresu
próbowałem użyć "history.pushState("",document.title,document.location.path), ale location.path pokazuje cały adres "strona.com/site/subsite", więc adres pozostaje niezmieniony.
Jak zatem otrzymać adres(strona.com/) z przed użycia metody pushState?
Proszę o pomoc
mortus
29.01.2012, 16:42:14
Niestety HTML5 History API nie jest w tej chwili kompatybilne ze wszystkimi przeglądarkami, a szczególnie z IE. Nawet jeśli osiągniesz porządany efekt, to nie pod każdą przeglądarką będzie to działać. Do rozwiązania problemu może posłużyć zdarzenie
onpopstate. Lepiej jednak użyć
History.js dla pełnej kompatybilności ze wszystkimi przeglądarkami, przynajmniej tak sugerują developerzy Moziili.
I podobny wątek na
stackoverflow.
chormi
29.01.2012, 19:24:58
Dzięki za odpowiedź, oczywiście wynalazki typu IE <9 ignoruję. Chodzi mi o samo wywołanie stanu z przed pushState,ale to sprawdzi się tylko w przypadku gdy użytkownik nie wejdzie na stronę z tzw "direct linka", bo wtedy to już będę musiał się bawić w cięcie stringów, bo na szczęście liczba parametrów w adresie jest stała, więc czy tak czy tak czeka mnie kombinowanie..