2010-01-05 27 views
14

पर क्लिक किया है, तो उपयोगकर्ता कैसे पता चला है जब उपयोगकर्ता इतिहास-बैक -1 चला जाता है ... मैं इसका पता कैसे लगा सकता हूं? और फिर, चेतावनी दें "उपयोगकर्ता वापस क्लिक किया!"उपयोगकर्ता ने "बैक" बटन

बांध (और अधिमानतः jQuery) का उपयोग करना

+3

एलेक्स पर निर्भर करता है, तो आप सिर्फ एक समान प्रश्न पूछा http://stackoverflow.com/questions/2008765/in-javascript-perferably-jquery-how-do-i-add-something-to-the-url-when-the-user स्पैम न करें। –

उत्तर

20

आप आम तौर पर नहीं कर सकते हैं (ब्राउज़र सुरक्षा प्रतिबंध)। आप बता सकते हैं कि क्या उपयोगकर्ता पृष्ठ से दूर जाता है (ऑनबॉर्नलोड, ऑनलोड लोड) लेकिन आप यह नहीं बता सकते कि वे कहां गए हैं जब तक कि आप इसे अनुमति देने के लिए अपना पृष्ठ सेट नहीं कर लेते।

एचटीएमएल 5 एचटीएमएल 5 इतिहास एपीआई प्रस्तुत करता है; ब्राउज़र को अनुरूप बनाने में, onpopstate ईवेंट आग लग जाएगा यदि उपयोगकर्ता आपकी साइट पर पहले "पृष्ठ" पर वापस आ जाएगा।

+0

इसके बारे में क्या? http://stackoverflow.com/questions/10462511/is-there-a-way-using-jquery-to-detect-the-back-button-being-pressed-cross-browse –

+1

आप इस तरह से पृष्ठों का निर्माण कर सकते हैं जो पीछे हट रहा है वह पता लगाने योग्य है, लेकिन एकमात्र तरीका यह है कि आप कहां गए थे, अगर वे आपकी साइट पर किसी अन्य पृष्ठ पर नेविगेट करते हैं (जहां आप जावास्क्रिप्ट को नियंत्रित करते हैं)। इस तरह के परिदृश्य का निर्माण कैसे करें? जब उपयोगकर्ता "PageA.htm" पर जाता है तो आप उन्हें तुरंत "पेजबीएचटीएम" पर भेजते हैं और यदि वे फिर से "पेजएएचटीएम" लोड करते हैं, तो आप "अनुमान लगा सकते हैं" कि उन्होंने "बैक" मारा है। – EricLaw

6

कोशिश:

window.onbeforeunload = function (evt) { 
    var message = 'Are you sure you want to leave?'; 
    if (typeof evt == 'undefined') { 
    evt = window.event; 
    } 
    if (evt) { 
    evt.returnValue = message; 
    } 
    return message; 
} 
+0

यदि उपयोगकर्ता किसी अन्य साइट पर जाता है तो OnBeforeUnload भी आग लग जाएगा। – EricLaw

+0

क्या अलर्ट संदेश प्रदर्शित करने का कोई तरीका नहीं है? –

2
window.onpopstate=function() 
{ 
    alert("Back/Forward clicked!"); 
} 
+5

यदि आप ** अन्य ** पृष्ठ पर जाते हैं और फिर इस पृष्ठ पर वापस आते हैं तो यह आग नहीं लगेगा। – Pacerier

-2

पेज आप देख रहे हैं, आप उन्हें वापस पेज वे पर थे स्थानांतरित करने के लिए onLoad ईवेंट में कोड के इस टुकड़े जोड़ सकते हैं।

if(history.length>0)history.go(+1) 

आप फिर वह अलर्ट के बाद यह

if(history.length>0)alert("the user clicked back!") 
+0

एकल पृष्ठ वेबसाइटों के लिए काम नहीं करेगा। – ShrekOverflow

+0

कुछ भी के लिए काम नहीं करेगा। 'history.length> 0' आपको एक नया नया पृष्ठ होने पर भी सत्य देगा। यह आपको [इतिहास की पूरी लंबाई] देता है (http://stackoverflow.com/a/9757655/632951) ** ** पीछे और आगे के पृष्ठ सहित। – Pacerier

0

चाहते हैं वापस बटन का पता लगाने के लिए कदम क्लिक

  1. शरीर पर घटना नीचे एक माउस रजिस्टर हैं $('body').on('mousedown' ,'on all li');

    2. जब mousedown घटना होती है तो अब एक चर सेट करें।

    3. जब आपका स्थान बदलता है तो इस चर को चेक करें।

सच करने के लिए चर प्रभार इसका मतलब है कि यदि सूची cliked अन्यथा backbutton

मेरी USECASE में यह काम है इस समाधान दूसरों में मदद करता है हो सकता है, क्योंकि यह एप्लिकेशन डिजाइन

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