दिलचस्प पोस्ट
स्ट्रिंग और स्ट्रिंगबिल्डर के बीच अंतर सी # स्पष्ट बनाम अंतर्निहित एसक्यूएल जोड़ता है उद्देश्य-सी में कस्टम प्रतिनिधि का उपयोग कैसे करें कमांड प्रॉम्प्ट से "प्रशासक के रूप में चलाने" के रूप में एक आवेदन कैसे चलाया जाता है? जीमेल त्रुटि: एसएमटीपी सर्वर को एक सुरक्षित कनेक्शन की आवश्यकता होती है या क्लाइंट को प्रमाणित नहीं किया गया था। सर्वर प्रतिक्रिया थी: 5.5.1 प्रमाणीकरण आवश्यक Collections.emptyList () बनाम नया उदाहरण एचडीएफएस त्रुटि: केवल 1 के स्थान पर, 0 नोड्स को दोहराया जा सकता है इस प्रमाण पत्र में एक अमान्य जारीकर्ता है: चाबी का निशान सभी प्रमाणपत्रों को "अमान्य जारीकर्ता" के रूप में चिह्नित करता है जावा प्रोग्राम से अपाचे जेएमेटर टेस्ट लिपियों को कैसे बना और चलाएं? $ पहले से ही प्रगति त्रुटि में लागू है संबंधित पथ और / या फ़ाइल नाम से पूर्ण पथ को हल करें MySQL सी # का उपयोग करने के लिए DateTime कन्वर्ट मैं अजगर से (विंडो) क्लिपबोर्ड से पाठ कैसे पढ़ूं? शरीर को स्क्रॉल करने से रोकें, लेकिन ओवरले स्क्रॉलिंग को अनुमति दें क्लॉकवर्ड ऑर्डर में चार बिंदुओं को सॉर्ट करें

जावास्क्रिप्ट या jQuery ब्राउज़र बैक बटन क्लिक डिटेक्टर

क्या कोई अनुभव साझा कर सकता है / क्या हम ब्राउजर बैक बटन क्लिक (ब्राउज़र के किसी भी प्रकार के लिए) का पता लगा सकते हैं?

हम सभी ब्राउज़र को पूरा करने की आवश्यकता है जो HTML5 का समर्थन नहीं करता है

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट या jQuery ब्राउज़र बैक बटन क्लिक डिटेक्टर"

'पॉपस्टेट' ईवेंट केवल तब ही काम करता है जब आप इससे पहले कुछ पुश करते हैं तो आपको कुछ ऐसा करना होगा:

jQuery(document).ready(function($) { if (window.history && window.history.pushState) { window.history.pushState('forward', null, './#forward'); $(window).on('popstate', function() { alert('Back button was pressed.'); }); } }); 

ब्राउज़र पिछड़े संगतता के लिए मैं सुझाता हूं: history.js

वहाँ कई तरीके हैं कि आप कैसे पता लगा सकते हैं कि उपयोगकर्ता ने बैक बटन पर क्लिक किया है। लेकिन सब कुछ आपकी आवश्यकताओं पर निर्भर करता है। नीचे दिए गए लिंक का पता लगाने की कोशिश करें, उन्हें आपकी मदद करनी चाहिए।

पता लगाएँ कि क्या उपयोगकर्ता ने चालू पृष्ठ पर "वापस" बटन दबाया है:

  • क्रॉस ब्राउज़र्स दबाए जाने के पीछे बैक बटन का पता लगाने के लिए Jquery का उपयोग करने का एक तरीका है
  • ब्राउजर में वापस बटन क्लिक करें

पिछला ("आगे") पृष्ठ पर "वापस" बटन दबाकर वर्तमान पृष्ठ का दौरा किया गया है या नहीं:

  • वापस बटन पर क्लिक करते समय क्या एक क्रॉस-ब्राउज़र ओलोड इवेंट है?
  • ब्राउज़र बैक बटन क्लिक पर ट्रिगर ईवेंट

यह अच्छी तरह से पार ब्राउज़र और मोबाइल back_button_override.js काम करने के लिए मिला।

(सफारी 5.0 के लिए एक टाइमर जोड़ा गया)

 // managage back button click (and backspace) var count = 0; // needed for safari window.onload = function () { if (typeof history.pushState === "function") { history.pushState("back", null, null); window.onpopstate = function () { history.pushState('back', null, null); if(count == 1){window.location = 'your url';} }; } } setTimeout(function(){count = 1;},200); 

यह HTML5 इतिहास API में उपलब्ध है घटना को 'popstate' कहा जाता है

निम्नलिखित फ़ंक्शन द्वारा यूआरएल बटन अक्षम करें

 window.onload = function () { if (typeof history.pushState === "function") { history.pushState("jibberish", null, null); window.onpopstate = function () { history.pushState('newjibberish', null, null); // Handle the back (or forward) buttons here // Will NOT handle refresh, use onbeforeunload for this. }; } else { var ignoreHashChange = true; window.onhashchange = function () { if (!ignoreHashChange) { ignoreHashChange = true; window.location.hash = Math.random(); // Detect and redirect change here // Works in older FF and IE9 // * it does mess with your hash symbol (anchor?) pound sign // delimiter on the end of the URL } else { ignoreHashChange = false; } }; } }; 

मेरे मामले में मैं एक एसपीए (एकल पृष्ठ [वेब] ऐप में डीआईवी को अपडेट करने के लिए jQuery। .load() का उपयोग कर रहा हूं।

$(window).on('hashchange', ..) साथ काम करने के लिए नया होने पर $(window).on('hashchange', ..) घटना श्रोता, यह एक चुनौतीपूर्ण साबित हुआ और हैक करने के लिए थोड़ा सा ले लिया। बहुत सारे जवाब पढ़ने और अलग-अलग बदलावों का प्रयास करने के लिए धन्यवाद, अंत में यह पता लगा है कि इसे कैसे निपुण तरीके से काम करना है I अभी तक मैं बता सकता हूं, यह अभी तक स्थिर दिख रहा है।

सारांश में – globalCurrentHash परिवर्तनीय है जो प्रत्येक बार जब आप दृश्य को लोड करते हैं तो सेट किया जाना चाहिए।

तब जब $(window).on('hashchange', ..) ईवेंट श्रोता चलाता है, यह निम्न की जांच करता है:

  • यदि location.hash में एक समान मूल्य है, तो इसका अर्थ है कि आगे जा रहे हैं
  • यदि location.hash का अलग मान है, तो इसका अर्थ है कि वापस जा रहे हैं

मुझे लगता है कि वैश्विक वार्स का उपयोग करना सबसे खूबसूरत समाधान नहीं है, लेकिन जेएसओ में ओ ओ काम करने से मुझे अभी तक मुश्किल लगता है। सुधार / शोधन के सुझाव निश्चित रूप से सराहना करते हैं


सेट अप:

  1. एक वैश्विक रूप को परिभाषित करें:
  var globalCurrentHash = null; 
  1. जब DIV को अपडेट करने के लिए .load() को कॉल करता है, तो वैश्विक रूप को भी अपडेट करें:

     function loadMenuSelection(hrefVal) { $('#layout_main').load(nextView); globalCurrentHash = hrefVal; } 
  2. पेज तैयार करने पर, ग्लोबल वैर को देखने के लिए श्रोता सेट अप करें कि क्या बैक बटन दबाया जा रहा है:

     $(document).ready(function(){ $(window).on('hashchange', function(){ console.log( 'location.hash: ' + location.hash ); console.log( 'globalCurrentHash: ' + globalCurrentHash ); if (location.hash == globalCurrentHash) { console.log( 'Going fwd' ); } else { console.log( 'Going Back' ); loadMenuSelection(location.hash); } }); });