• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

problem z push state

Object Storage Arubacloud
0 głosów
148 wizyt
pytanie zadane 4 maja 2018 w JavaScript przez niezalogowany

mam taką funkcje:

function getPage(page){
  console.log("sprawdzanie strony");
  if(actPage == page){return}
  console.log("ustawianie strony strony");
  actPage = page;
  $(".progressbar").fadeIn(50);
  console.log("ajax");
  $.ajax({
      url         : "DashBoard/"+page+".php",
      type        : "post",
      dataType    : 'text'
  }).done(function(response) {
    if(response != ""){
      $(".content").html(response);
      $(".progressbar").fadeOut();
    }
  });
  console.log("push state");
  history.pushState(null, '#' +page, '#' +page);
}

wykonuje się ona albo po kliknięciu w dane hiperłącze w nawigacji (onClick) albo po odświeżeniu strony "document.onLoad". podmienia mi kontent, oraz hash w pasku. wszystko ładnie pięknie, ale push state chyba mi źle zapisuje strone, bo gdy klikam w przeglądarce powrót do poprzedniej strony, to hash w pasku przeglądarki  się zmienia, ale strona ani drgnie. więc mam pytanie. jak tego używać :D ?  dodam ze przeglądarka to najnowszy zaktualizowany firefox

komentarz 4 maja 2018 przez ScriptyChris Mędrzec (190,190 p.)

Czym dokładnie jest parametr page? Czy w konsoli są błędy? Sprawdź też przed i po użyciu metody history.pushState zawartość obiektu history - czy zaszły tam zmiany?

komentarz 4 maja 2018 przez niezalogowany
żadnych błędów, page to hash. działa to dokładnie tak:

- mam listę, w której każdy element listy ma atrybut onClick="getPage('page')" <--- z czym gdzie page to właśnie konkretny hash.

- uruchamia się ta funkcja która do diva content zaczytuje odpowiedni plik PHP ajaxem oraz zapisuje push statem adres (w tym przypadku hash)

i właśnie ten push state nie działa tzn. adres w pasku przeglądarki jest ładnie podmieniany na odpowiedni stary hash, ale zawartość strony się nie zmienia
komentarz 4 maja 2018 przez niezalogowany

Problem z teorii mozan uznać za rozwiązany, wykorzystałem te 2 funkcje:
 

function firstLoad(){
  var hash = window.location.hash;
  hash = hash.substr(1);
  actPage = hash;
  $(".progressbar").fadeIn(50);
  $.ajax({
      url         : "DashBoard/"+hash+".php",
      type        : "post",
      dataType    : 'text'
  }).done(function(response) {
    $(".container").html(response);
    $(".progressbar").fadeOut();
  });
}
window.onpopstate = function(event) {
   var hash = document.location.hash.substr(1);
   firstLoad(hash);
};

nie jest to najlepszy kod, ale moze komuś się przyda :p

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 137 wizyt
pytanie zadane 18 lipca 2018 w JavaScript przez mihalrudy Nowicjusz (200 p.)
0 głosów
0 odpowiedzi 145 wizyt
pytanie zadane 28 grudnia 2018 w JavaScript przez Maikeru Początkujący (250 p.)
0 głosów
2 odpowiedzi 162 wizyt
pytanie zadane 24 września 2018 w JavaScript przez LCPGM Obywatel (1,550 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...