Autor Zpráva
norman
Profil *
Přeji dobrý den,

měl bych dotaz, věděl by jste někdo jak na následující problematiku?

Mam prezentaci na ajaxu a url měním pushstate, když však přejdu pomocí tlačítka zpět v prohlížeči stane se to, že se změní url ale obsah nikoliv, nevíte někdo jak handlovat tlačítko zpět v prohlížeči? Popřípadě, nevíte někdo jak zacházet s .bind('popstate') v jquery, pjax to vyřešil, ale nebyl jsem schopný dohledat jak. Google mi taky moc nepomohl.
pcmanik
Profil
Podľa dokumentácie k manipulácii s históriou browsera to ľahko pochopíš. Resp. si môžes pozrieť priamo dokumentáciu k udalosti onpopstate.
norman
Profil *
No, nezlobte se, ale jsem natvrdlý.

Mohli by jste mě ukázat jak asi by to přibližně mohlo vypadat, zkoušel jsem to takto,

$(window).bind('popstate', window.history.back());

ovšem to to se chová divně, já hlavně nemůžu pochopit ten event, kdy se spustí proč se spustí.
Mohl by jste mi někdo ukázat jak když dojde k push state jak při tlačítku back(v browseru) změnit windows.location.href ??

Díky, předem..
pcmanik
Profil
norman:
Pomocou parametrov funkcie pushState sa ti zmení url webu a zapíše sa do histórie prehliadača.
Akonáhle klikneš na tlačítko späť, spustí sa ti udalosť popstate. V ktorej pomocou event.state môžes získať nejaké dáta čo si si pomocou pushState uložil.

Teda:
var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

window.onpopstate = function(event) {
    console.log(event.state) // Vypíše obsah premennej stateObj
    console.log(location.pathname) // Vypíše /bar.html
};
norman
Profil *
pcmanik:

Mockrát děkuji, ani nevíš jak mi to pomohlo :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: