2012-07-07 12 views
8

मैं अपने कोड में jQuery के साथ History.js (click) का उपयोग कर रहा हूं।इतिहास.जेएस का उपयोग करते समय मुझे बैक/फॉरवर्ड बटन क्लिक करने का पता कैसे लगाया जा सकता है?

जब ajax के माध्यम से नई सामग्री लोड मैं का उपयोग करें:

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

इस के बाद से यूआरएल ब्राउज़र में अद्यतन किया जाता है काम करने के लिए लगता है।

हालांकि, मुझे यह नहीं मिलता है कि जब भी बैक या फॉरवर्ड बटन दबाया जाता है तो मैं अपना कोड हुक कर सकता हूं। इसके लिए कौन सी विधि/घटना का उपयोग किया जाता है?

+0

यहां समाधान: http://stackoverflow.com/questions/10632483/pushstate-and-popstate-manipulating-browsers- इतिहास –

उत्तर

8

आप statechange घटना के लिए एक ईवेंट हैंडलर बाध्य करने की जरूरत है इस तरह:

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

वहाँ एक पूरा जावास्क्रिप्ट टुकड़ा है कि History.js के साथ आता है, जो करने के लिए 'इस्तेमाल किया जा सकता है AJAXify 'पूरी तरह से साइट: https://github.com/browserstate/ajaxify

अधिक प्रेरणा के लिए वहां एक नज़र डालें।

+3

यह क्यों डाउनवॉट किया गया था? यह करने के लिए सही बात है ... हालांकि मैं शायद कुछ ऐसा करूंगा: 'इतिहास। एडाप्टर.बिंद (विंडो, 'पॉपस्टेट', फ़ंक्शन() { $ modalContext.modal ('close'); }); ' – chug2k

4

आप पर कब्जा नहीं करेंगे, घटना पर क्लिक करें, क्योंकि कोई भी नहीं है।

आप क्या करना चाहते क्या यकीन history वस्तु window.history.pushState, window.history.popState, window.history.replaceState तरीकों का उपयोग करके सही स्थिति में है बनाते हैं।

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

2

मैं अपने कस्टम AJAX कोड को ट्रिगर करने के लिए "ऑनपॉपस्टेट" ईवेंट का उपयोग करने में सक्षम था।

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

मैंने कई अन्य चीजों की कोशिश की और यही मेरे लिए काम किया।

संबंधित मुद्दे

 संबंधित मुद्दे