2013-06-14 9 views
5

मैं दोनों "वापस" और "आगे" बटन लक्षित कर रहा हूं इस जावास्क्रिप्ट के साथ एक साथ स्निपेट:लक्ष्य ब्राउज़र पीछे या आगे बटन को व्यक्तिगत रूप से

window.addEventListener("popstate", function(event) { 
    // do something cool 
} 

मैं के बीच "वापस" और "आगे" बटन और लक्ष्य कैसे अलग कर सकते हैं उनकी घटनाओं को अलग से?

+2

एक तरीका मैं सोच सकता हूं: जब आप 'pushState' को किसी ऑब्जेक्ट ऑब्जेक्ट में जोड़ते हैं, और हर बार जब आप' pushState' बढ़ाते हैं तो इसे बढ़ाएं। अब जब आप आगे या पीछे जाते हैं तो आप उस नंबर की वर्तमान स्थिति से तुलना कर सकते हैं, और जांच सकते हैं कि वह संख्या बड़ी या छोटी हो रही है या नहीं। सुनिश्चित नहीं है कि यह काम करेगा, लेकिन यह एक विचार है। –

+0

दिलचस्प विचार, @RocketHazmat, धन्यवाद! –

+0

आपका स्वागत है। मुझे नहीं पता कि ऐसा करने के "आधिकारिक" तरीके हैं, लेकिन ऐसा लगता है कि इसे काम करना चाहिए। मैं थोड़ा व्यस्त हूं, इसलिए मेरे पास एक उदाहरण चाबुक करने का समय नहीं है :-) –

उत्तर

0

यदि आप इसे सही तरीके से कार्यान्वित करते हैं तो आपको पीछे/आगे या इतिहास को ट्रैक करने की आवश्यकता नहीं है। आपके द्वारा लोड की जाने वाली प्रत्येक एक्सएमएल फ़ाइल को एक अद्वितीय आईडी दी जानी चाहिए, बस अंडरस्कोर के साथ आगे की स्लैश को प्रतिस्थापित करें और याद रखें कि आपको वास्तविक यूआरएल के लिए अंडरस्कोर का उपयोग नहीं करना चाहिए, आप इसके बजाय डैश का उपयोग करते हैं। मान लीजिए कि आपके पास एक यूआरएल योजना नहीं है जो विंडोज 8 का उपयोग करके गैर-homicidal लगता है तुलना करके आप बस अनुरोध आईडी की जांच करें।

आप देख सकते हैं कि popstate अपनी साइट पर काम करता है ...

http://www.jabcreations.com/blog/

एक Ctrl + F करो और कोड की रेखा के आसपास शुरू कर देखो ...

window.onclick = function(e) 

। ..here ...

http://www.jabcreations.com/scripts/index.js

तो y फायरबग का उपयोग कर रहे हैं # लिक्विड (सचमुच <body><div id="body"><div id="content"><div id"liquid"> मेरे एक्सएचटीएमएल में) का विस्तार करें।

यदि आप खो जाते हैं तो मुझे बताएं और मैं स्पष्ट कर दूंगा कि कोड क्या कर रहा है। इसके अलावा यह आपके कोड को जितना संभव हो सके सख्त करने में मदद करता है (एक्सएचटीएमएल एप्लीकेशन/एक्सएचटीएमएल + एक्सएमएल और आपकी एक्सएमएल सामग्री को एप्लिकेशन/एक्सएमएल के रूप में कार्य किया जाना चाहिए)।

+0

सामग्री को 'एप्लिकेशन/एक्सएचटीएमएल + एक्सएमएल' के रूप में सेवा देना आईई 8 तोड़ने का एक अच्छा तरीका है। इसके अलावा, यदि आपकी साइट कभी भी नीचे जाती है, तो यह जवाब बेकार है। लिंक करने से बचें और इसके बजाय यहां कोड शामिल करें। – Stijn

+0

वोट-डाउन @Stijn के लिए धन्यवाद! स्पष्ट रूप से आपने कभी सामग्री-वार्ता के बारे में नहीं सुना है। > __> आपने दिमागी रूप से डाउन-वोटिंग से पहले इसकी पुष्टि करने के लिए IE8 या पुराने (NOT) का उपयोग करके मेरी साइट पर भी स्पष्ट रूप से विज़िट किया। फिगारो ने एक अस्पष्ट सवाल पूछा, एक जवाब मिला और स्वीकार किया कि स्पष्ट रूप से आगे बढ़ने की उनकी क्षमता आपको अपमानित करती है। – John

+0

फिर आपको पूरा होना चाहिए और आईई 8 अंक का उल्लेख करना चाहिए। और मैंने आपको दो कारणों से नीचे गिरा दिया, एक नहीं। वास्तव में मैं एक तिहाई जोड़ दूंगा। एक्सएचटीएमएल को एचटीएमएल 5 के पक्ष में छोड़ दिया गया है। – Stijn

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