2012-07-07 32 views
8

Im sử dụng History.js (click) với jQuery trong mã của tôi.Làm cách nào để phát hiện các nút quay lại/chuyển tiếp được nhấp khi sử dụng History.js?

Khi tải nội dung mới qua ajax tôi sử dụng:

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

Điều này dường như làm việc kể từ khi URL được cập nhật trong trình duyệt.

Tuy nhiên, tôi không hiểu nơi tôi có thể kết nối mã của mình bất cứ khi nào nhấn nút quay lại hoặc tiến. Phương thức/sự kiện nào được sử dụng cho điều này?

+0

Giải pháp tại đây: http://stackoverflow.com/questions/10632483/pushstate-and-popstate-manipulating-browsers-history –

Trả lời

8

Bạn cần phải ràng buộc một event handler cho sự kiện statechange, như thế này:

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

Có một đoạn javascript mà đi kèm với History.js, có thể được sử dụng để 'hoàn chỉnh ajaxify 'một trang web hoàn toàn: https://github.com/browserstate/ajaxify

Hãy xem xét để có thêm cảm hứng.

+3

tại sao điều này lại bị bỏ phiếu? đây là điều chính xác để làm ... mặc dù tôi có thể sẽ làm một cái gì đó như: 'History.Adapter.bind (cửa sổ, 'popstate', function() { $ modalContext.modal ('close'); }); ' – chug2k

2

Tôi đã có thể sử dụng sự kiện "onPopState" để kích hoạt mã AJAX tùy chỉnh của mình.

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

Tôi đã thử một số thứ khác và đó là những gì hiệu quả đối với tôi.

Các vấn đề liên quan