2012-07-07 11 views
8

Ich benutze History.js (click) mit jQuery in meinem Code.Wie kann ich die Zurück/Vorwärts-Schaltflächen erkennen, auf die geklickt wird, wenn Sie History.js verwenden?

Wenn neue Inhalte über Ajax Laden i verwenden:

History.pushState({my:stateobject},"newtitle","supernewurl"); 

Dies scheint zu funktionieren, da die URL im Browser aktualisiert wird.

Ich bekomme es jedoch nicht, wo ich meinen Code anschließen kann, wenn eine Zurück- oder Vorwärts-Taste gedrückt wird. Welche Methode/Ereignis wird dafür verwendet?

+0

Lösung hier: http://stackoverflow.com/questions/10632483/pushstate-and-popstate-manipulating-browsers-history –

Antwort

8

Sie benötigen einen Event-Handler an das statechange Ereignis zu binden, wie folgt aus:

$(window).bind('statechange',function(){ 
// Do something, inspect History.getState() to decide what 
}) 

Es ist eine komplette JavaScript-Schnipsel, die mit history.js kommt, die dazu verwendet werden können, um " ajaxify 'eine Seite komplett: https://github.com/browserstate/ajaxify

Werfen Sie einen Blick für mehr Inspiration.

+3

Warum wurde das heruntergeregelt? das ist die richtige Sache zu tun ... obwohl ich wahrscheinlich so etwas tun würde: 'History.Adapter.bind (Fenster, 'Popstate', Funktion() { $ modalContext.modal ('close'); }); ' – chug2k

2

Ich konnte das "onPopState" -Ereignis verwenden, um meinen benutzerdefinierten AJAX-Code auszulösen.

window.onpopstate = function(event) { 
    $(fellowModal).foundation('reveal', 'close'); 
}; 

Ich habe mehrere andere Dinge ausprobiert und das hat bei mir funktioniert.

Verwandte Themen