ब्राउज़र का बैक बटन अक्षम करें


98

ब्राउज़र के BACK बटन (ब्राउज़रों के पार) को कैसे निष्क्रिय करें?


92
आप अपने उपयोगकर्ताओं के कंप्यूटर या उनके ब्राउज़र के स्वामी नहीं हैं।
इंस्टा हंटर

47
+1 क्योंकि मैं मानता हूं कि ब्राउज़र्स बैक बटन को अक्षम करना 'बुरा व्यवहार' है, इसलिए मुझे खुद ही सवाल को नीचा दिखाने का कोई कारण नहीं दिखता, जवाब देने और समझाने का कारण यह है कि imo जाने का तरीका क्या है।
क्रिस्टोफ डी

45
हमें इस सवाल से दुश्मनी क्यों हो रही है? हम सभी के लिए, यह प्रश्न पूछने वाला व्यक्ति पहले से ही जानता है कि यह खराब प्रयोज्य अभ्यास है, लेकिन केवल आवश्यकताओं का पालन कर रहे हैं, या शायद वे केवल कुछ सीखना चाहते हैं। क्यों नहीं हम दिखावा करते हैं कि यह एक काल्पनिक सवाल है, और इसका उत्तर दें कि हम इसे कैसे करेंगे यदि हम उस तरह का काम करते हैं?
थोमसट्रेटर

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

37
उह, मैंने अब तक की सबसे भयानक टिप्पणी लिखी, लेकिन जब मैंने गलती से बैक बटन दबाया तो वह खो गई।
डैन विलियम्स

जवाबों:


26

यह प्रश्न इस एक के समान है ...

आपको इस कार्य के लिए कैश को समाप्त करने के लिए बाध्य करने की आवश्यकता है। निम्नलिखित कोड को अपने पेज कोड के पीछे रखें।

Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)

14
ध्यान दें कि पृष्ठ को अस्वीकार्य बनाने से ओपी जो चाहता था वह प्राप्त नहीं होता है: बैक बटन का उपयोग करके आने वाले पृष्ठों को अक्षम करना। यहां तक ​​कि अगर कोई ब्राउज़र बैक बटन का उपयोग करते समय नो-कैश का पालन करता है (जो ब्राउज़र AFAIK करने के लिए बाध्य नहीं हैं) तो वे अभी भी उस पृष्ठ को लोड करने का एक तरीका प्रदान करते हैं (आमतौर पर एक चेतावनी संवाद दिखाने के बाद)। इसलिए यदि आप वास्तव में अपने उपयोगकर्ताओं को उस पृष्ठ पर वापस नहीं जाना चाहते हैं, तो यह बदतर हो सकता है, क्योंकि उस पृष्ठ के लिए अनुरोध मूल सर्वर पर अपना रास्ता बनाने के लिए होगा। यह पता लगाने के लिए आपको कुछ सर्वर-साइड की आवश्यकता होगी कि पृष्ठ का पुनरीक्षण किया गया है। हेडर्स को नजरअंदाज किया जा सकता है।
थोमसट्रेटर

60

अपेक्षित ब्राउज़र व्यवहार को अक्षम न करें।

अपने पृष्ठों को एक या दो पृष्ठ वापस करने वाले उपयोगकर्ताओं की संभावना को संभालें; उनके सॉफ़्टवेयर को अपंग करने का प्रयास न करें।


6
धन्यवाद दोस्त, बात यह है कि यदि आप एक AJAX ऐप बना रहे हैं, तो बैक बटन को अक्षम करने, या अपने ऐप से जाने और प्रत्येक और हर संभव परिदृश्य के लिए उपयुक्त बैक एक्शन को पूरा करने के बीच लागत-लाभ वाले ट्रेडऑफ़ को अक्षम कर सकते हैं। बैक बटन दो का अधिक आकर्षक विकल्प है।
david.barkhuizen

मैं जोनाथन के साथ सहमत हूँ, विशेष रूप से पुनर्निर्देशित मैलवेयर विज्ञापनों की बाढ़ के साथ जो वर्तमान में इंटरनेट पर बाढ़ कर रहे हैं, वे पहले से ही सतर्कता प्रणाली का दुरुपयोग करते हैं ताकि वे अपने पृष्ठों को छोड़ने के लिए मुश्किल बना सकें, उन्हें वास्तव में आपके पेज पर लॉक करने की क्षमता न हो
माइकटी

46

मैं एक छोटी सी हैक के साथ आया था जो जावास्क्रिप्ट का उपयोग करके बैक बटन को निष्क्रिय करता है। मैंने इसे क्रोम 10, फ़ायरफ़ॉक्स 3.6 और IE9 पर चेक किया:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<title>Untitled Page</title>
<script type = "text/javascript" >
function changeHashOnLoad() {
     window.location.href += "#";
     setTimeout("changeHashAgain()", "50"); 
}

function changeHashAgain() {
  window.location.href += "1";
}

var storedHash = window.location.hash;
window.setInterval(function () {
    if (window.location.hash != storedHash) {
         window.location.hash = storedHash;
    }
}, 50);


</script>
</head>
<body onload="changeHashOnLoad(); ">
Try to hit the back button!
</body>
</html>

यह क्या कर रहा हैं?

टिप्पणियाँ से:

यह स्क्रिप्ट इस तथ्य का लाभ उठाती है कि ब्राउजर इतिहास के हिस्से के रूप में ब्राउज़र में "#" चिह्न के बाद जो भी आता है, उस पर विचार करता है। यह क्या करता है: जब पृष्ठ लोड होता है, तो URL में "# 1" जोड़ा जाता है। 50ms के बाद "1" हटा दिया जाता है। जब उपयोगकर्ता "बैक" पर क्लिक करता है, तो ब्राउज़र यूआरएल को वापस उसी चीज़ में बदल देता है जो "1" हटाए जाने से पहले था, लेकिन - यह वही वेब पेज है, इसलिए ब्राउज़र को पेज को फिर से लोड करने की आवश्यकता नहीं है। - योसी शशो


1
ऐसा लगता है कि जब पृष्ठ लोड होता है, तो यह स्क्रिप्ट URL में "#" जोड़ता है, और प्रत्येक 50ms में, यह URL पर 1 भेजता है।
ashes999

6
यह स्क्रिप्ट इस तथ्य का लाभ उठाती है कि ब्राउजर इतिहास के हिस्से के रूप में ब्राउज़र में "#" चिह्न के बाद जो भी आता है, उस पर विचार करता है। यह क्या करता है: जब पृष्ठ लोड होता है, तो URL में "# 1" जोड़ा जाता है। 50ms के बाद "1" हटा दिया जाता है। जब उपयोगकर्ता "बैक" पर क्लिक करता है, तो ब्राउज़र यूआरएल को वापस उसी चीज़ में बदल देता है जो "1" हटाए जाने से पहले था, लेकिन - यह वही वेब पेज है, इसलिए ब्राउज़र को पेज को फिर से लोड करने की आवश्यकता नहीं है।
योसी शशो

1
ध्यान दें कि URL दो बार बदलता है: हम केवल कार्यान्वयन को छिपाने के लिए ऐसा करते हैं, इसलिए कोई भी यह नहीं देखेगा कि हमने "1" जोड़ा है। इसलिए वास्तव में जब उपयोगकर्ता वापस क्लिक करता है, तो पृष्ठ एक पल के लिए "# 1" को फिर से जोड़ता है और इसे फिर से हटा देता है। BTW - यह "1" होना जरूरी नहीं है, यह किसी भी स्ट्रिंग हो सकता है।
योसी शशो

2
इसके साथ समस्या यह है कि पृष्ठ प्रत्येक 50 एमएस पर शीर्ष पर स्क्रॉल कर रहा है। यदि आपके पास विंडो की ऊँचाई से बड़ा कोई प्रपत्र है, तो इससे फ़ॉर्म के मानों को भरना असंभव हो जाएगा।
3komma14 10

बहुत बहुत धन्यवाद। यह जावास्क्रिप्ट आधारित विशेष रूप से इंटरैक्टिव पेज के लिए सुपर उपयोगी है, जहां बाएं और दाएं स्क्रॉल करना मैकेनिक का हिस्सा है। यह मैक ओएस एक्स पर स्क्रॉल जेस्चर की समस्या को खत्म करने में मदद करता है जो उपयोगकर्ताओं को दुर्घटना से एक पृष्ठ "वापस" लेता है (यदि वे पहले से ही सभी तरह से स्क्रॉल किए जाते हैं तो यह करना आसान है)।
इयान कॉलिन्स

34

दूसरों ने "यह मत करो" कहने के लिए दृष्टिकोण लिया है लेकिन यह वास्तव में पोस्टर के सवाल का जवाब नहीं देता है। चलो बस मान लेते हैं कि हर कोई जानता है कि यह एक बुरा विचार है, लेकिन हम उत्सुक हैं कि यह कैसे किया जाता है ...

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

ऐसा करने के लिए मैंने जो एक तरीका देखा है, वह है आवेदन के भीतर हर URL पर एक टोकन पास करना और हर रूप में। टोकन को प्रत्येक पृष्ठ पर पुनर्जीवित किया जाता है, और उपयोगकर्ता द्वारा एक नया पृष्ठ लोड करने के बाद पिछले पृष्ठों के किसी भी टोकन को अमान्य कर दिया जाता है।

जब उपयोगकर्ता किसी पृष्ठ को लोड करता है, तो पृष्ठ केवल तभी दिखाएगा यदि सही टोकन (जो पिछले पृष्ठ पर सभी लिंक / प्रपत्रों को दिया गया था) को इसे पारित कर दिया गया था।

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


1
मेरा बैंक एक अलग दृष्टिकोण लेता है - यह सत्र को पूरी तरह से समाप्त कर देता है। बैक बटन का उपयोग लॉग आउट करने के बराबर है।
रोबग

यह एक ही दृष्टिकोण की तरह लगता है। वे पता लगा रहे हैं कि आप वापस चले गए हैं और एक त्रुटि स्थिति को फेंक दिया है।
थोमसट्रेटर

टोकन समाधान के आसपास भी जूमला काम करता है, एक टोकन हर पेज और हर रूप से उत्पन्न होता है, इस अभ्यास के बारे में कुछ समस्याएं हैं, जैसे "जब कोई उपयोगकर्ता एक पृष्ठ पर बहुत अधिक रहता है और उसका टोकन समाप्त हो जाता है"
माटेयो बोनोनी '' लोथेयर '

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

यदि समस्या यह है कि जानकारी खो गई है या पहले से ही टूट गई है अगर उपयोगकर्ता बैक बटन का उपयोग करने की कोशिश करता है, तो बैक बटन को अक्षम करना एक अधिक वांछित दृष्टिकोण होगा।
PoloHoleSet

10

जबकि मैं स्वयं उत्तर की तलाश कर रहा हूं, "सर्वश्रेष्ठ अभ्यास" .... पुराना है ... जैसे ब्राउज़र हैं (वास्तव में ब्राउज़र बदसूरत हैं)

ब्राउज़रों के लिए सबसे अच्छा / सबसे सुरक्षित समाधान एक विधि / अनुरोध को लागू करना होगा जहां उपयोगकर्ता पृष्ठ को इंटरफ़ेस को नियंत्रित करने की क्षमता प्रदान कर सकता है।

क्यों? क्योंकि मेरे वर्तमान प्रोजेक्ट के लिए मैं 100% जावास्क्रिप्ट निर्मित और नियंत्रित इंटरफ़ेस का निर्माण कर रहा हूं .. और बैक बटन की मेरी परियोजना में कोई जगह नहीं है क्योंकि कोई पृष्ठ परिवर्तन नहीं हुआ है। (यानी एक ताज़ा होने के कारण तेज़ तेज़ और कोई पृष्ठ-चमक नहीं .. बिल्कुल असली एप्लीकेशन की तरह!)

मुझे पता है कि इंटरफ़ेस को "हाईजैक" करने की क्षमता क्यों नहीं है, और मैं इसे समझता हूं। लेकिन कम से कम हमारे पास इसे ब्राउज़र से अनुरोध करने की क्षमता होनी चाहिए! अब यह वास्तव में हाईजैक खतरों के बिना "सर्वोत्तम अभ्यास" होगा।

लेकिन ब्राउज़रों के ब्राउज़र .. मुझे इस संबंध में कुछ भी बाहर निकलने की उम्मीद नहीं है।


1
100% असहमत हैं, जबकि यह कार्यक्षमता 99% वेब डेवलपर्स के लिए अद्भुत होगी, जो शेष 1% छोड़ देता है जो इस कार्यक्षमता का दुरुपयोग करेगा, यह एक वेबसाइट को इंटरनेट का उपयोग करने की आपकी क्षमता को नियंत्रित करने की अनुमति देने के लिए बहुत खतरनाक है, मेरी राय में क्रॉस डोमेन रीडायरेक्ट स्क्रिप्ट को या तो प्रतिबंध की आवश्यकता होती है या यह पुष्टि करने की अनुमति होती है कि क्या स्क्रिप्ट को केवल इस तरह के दुरुपयोग के कारण चलाने की अनुमति है
माइक

@ माइक - अपने स्वयं के विशिष्ट एप्लिकेशन पृष्ठों पर नेविगेट करते समय "बैक" बटन को कैसे अक्षम किया जाएगा, जो इंटरनेट का उपयोग करने की किसी की क्षमता को बाधित करता है?
पोलोहॉल्ससेट

@PoloHoleSet यदि आपके पास ब्राउज़रों के बैक बटन को निष्क्रिय करने की क्षमता है, तो ऐसा हर कोई करता है, बस आपको एक पृष्ठ पर भेजने के लिए एक रीडायरेक्ट करना होगा जिसे आप नहीं जाना चाहते थे और यदि वे ब्राउज़र में आपके नेविगेशन नियंत्रण को अक्षम कर सकते हैं तो कैसे क्या आप बच गए? मुझे यकीन है कि आप "आपके पास एक वायरस पृष्ठ है" आया है, जहां वे आपको अपने वायरस को स्थापित करने के लिए संकेत देते हैं कि गैर-मौजूद वायरस को हटाने के लिए अब उस साइट की कल्पना करें जहां वे वास्तव में आपको जाने से रोक सकते हैं
माइक टीटी

@ माइक - मैं नेविगेशन विंडो में किसी भी अन्य यूआरएल को दर्ज कर सकता हूं, मैं एक टैब बंद कर सकता हूं, मैं जावास्क्रिप्ट को अक्षम कर सकता हूं। मुद्दा यह है कि क्या कोई नहीं कर सकता, क्योंकि आप कर सकते हैं, मैं कर सकता हूं, कोई भी कर सकता है। नीति के एक मामले के रूप में, लोग कह रहे हैं कि यदि आप कर सकते हैं तो आपको चाहिए। हम इस बारे में बात नहीं कर रहे हैं कि हम किसी ब्राउज़र को कैसे डिज़ाइन करेंगे, हम बात कर रहे हैं कि हम किसी एप्लिकेशन को कैसे प्रोग्राम करते हैं।
पोलोहोलेसेट

@PoloHoleSet यदि आप नेविगेशन को लॉक करने जा रहे हैं तो आपको केवल बैक बटन से अधिक लॉक करने की आवश्यकता होगी, क्योंकि ब्राउज़र इतिहास और टाइप किए गए यूआरएल भी उपयोगकर्ताओं को आपके काम के प्रवाह को बायपास करने का एक तरीका प्रदान करेंगे। और जैसे मैंने कहा कि हम इस बारे में बात नहीं कर रहे हैं कि आप या मैं क्या करेंगे लेकिन दुर्भावनापूर्ण तत्व, यदि आपके ब्राउज़र पर नियंत्रण रखने वाली दुर्भावनापूर्ण वेबसाइट को रोकने का एकमात्र तरीका आपके ब्राउज़र पर सभी js को अक्षम करना है तो आपने इंटरनेट को तोड़ दिया है आधुनिक वेब सामग्री प्रदान करने के लिए लिपियों पर निर्भर करता है जो कि मेरी बात है, यदि आप चाहते हैं कि आपके उपयोगकर्ताओं पर अधिक नियंत्रण आपके वर्कफ़्लो की सेवा करने के लिए एक ऐप बनाए
माइक जूल

4

मैं उसी प्रश्न को खोज रहा था और मुझे एक साइट पर निम्नलिखित कोड मिला। यहाँ साझा करने के लिए सोचा:

function noBack()
{
   window.history.forward()
}
noBack();
window.onload = noBack;
window.onpageshow = function(evt){ if(evt.persisted) noBack(); }
window.onunload = function(){ void(0); }

हालांकि, जैसा कि उपर्युक्त उपयोगकर्ताओं द्वारा कहा गया है, यह कभी भी एक अच्छा अभ्यास नहीं है और इसे सभी कारणों से बचा जाना चाहिए।


2
यह अच्छा होगा यदि आप उन कारणों को बता सकते हैं जिनसे बचना चाहिए।
क्रिस स्नो

मेरी समझ के अनुसार, आप तकनीकी रूप से किसी के ब्राउज़र पर बैक बटन को अक्षम नहीं कर सकते हैं, आप केवल इसे बना सकते हैं ताकि बटन उपलब्ध न हो या उसी पृष्ठ को लोड करना जारी रखे। जेएस करने के बजाय, सर्वर साइड कोड का उपयोग करें और उचित तर्क का उपयोग करें जिसे बैक बटन का उपयोग करने की आवश्यकता नहीं है। एक ही पृष्ठ को फिर से लोड करने या कस्टम संदेश दिखाने जैसी वैकल्पिक कार्रवाई का उपयोग किया जाना चाहिए।
user704988

2

यदि आप क्लाइंट-साइड तकनीक पर भरोसा करते हैं, तो इसे दरकिनार किया जा सकता है। उदाहरण के लिए, जावास्क्रिप्ट अक्षम किया जा सकता है। या उपयोगकर्ता आपके प्रतिबंधों के आसपास काम करने के लिए JS स्क्रिप्ट निष्पादित कर सकता है।

मेरा अनुमान है कि आप केवल उपयोगकर्ता सत्र के सर्वर-साइड ट्रैकिंग, और पुनर्निर्देशन (जैसा कि Server.Transfer, नहीं Response.Redirect) उपयोगकर्ता / ब्राउज़र को आवश्यक पृष्ठ पर कर सकते हैं।



2

कुछ अलग कार्यान्वयन हुए हैं। IE के लिए एक फ्लैश समाधान और कुछ iframe / फ्रेम समाधान है। इसकी जांच करो

http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps

BTW: अक्षम करने के लिए बहुत सारे वैध कारण हैं (या कम से कम 1 कदम रोकें) एक बैक बटन - जीमेल को एक उदाहरण के रूप में देखें जो उपरोक्त लेख में चर्चा किए गए हैश समाधान को लागू करता है।

Google "ajax ने बैक बटन कैसे तोड़ा" और आपको उपयोगकर्ता परीक्षण और बैक बटन को अक्षम करने की वैधता पर बहुत सारे लेख मिलेंगे।


फेसबुक के नए फोटो दर्शक को भी देखें। ध्यान दें कि बैक बटन आपको ब्राउज़र डिफ़ॉल्ट करने के बजाय एक फोटो (जो आप चाहते हैं) वापस ले जाता है
DallinDyer

2

मुझे भी यही समस्या थी, इस जावा स्क्रिप्ट फ़ंक्शन को हेड टैग पर या इसके 100% ठीक काम पर उपयोग करें, आपको वापस नहीं जाने देंगे।

 <script type = "text/javascript" >
      function preventBack(){window.history.forward();}
        setTimeout("preventBack()", 0);
        window.onunload=function(){null};
    </script>

1

इस कोड को आज़माएं। मेरे लिए काम किया। यह मूल रूप से पृष्ठ लोड होते ही हैश को बदल देता है जो URL पर "1" जोड़कर हाल के इतिहास पृष्ठ को बदल देता है। इसलिए जब आप बैक बटन दबाते हैं, तो यह हर बार उसी पेज पर रीडायरेक्ट होता है।

 <script type="text/javascript">
    var storedHash = window.location.hash;
    function changeHashOnLoad() { window.location.hash = "1";}
    window.onhashchange = function () {
        window.location.hash = storedHash;
    }
</script>

<body onload="changeHashOnLoad(); ">

</bod>

0

आपको उचित समाप्ति और कैशिंग हेडर वाले पोस्ट का उपयोग करना चाहिए।


इस जवाब पर मेरी टिप्पणी देखें कि यह काम क्यों नहीं करता है।
थोमसट्रेटर

0

ब्राउज़र बैक बटन को अक्षम करने के बजाय इसका समर्थन करना बेहतर है। .NET 3.5 बहुत अच्छी तरह से ब्राउज़र को वापस (और आगे) बटन को संभाल सकता है। Google के साथ खोजें: "Scriptmanager EnableHistory"। आप यह नियंत्रित कर सकते हैं कि कौन सी उपयोगकर्ता क्रियाएँ ब्राउज़र के इतिहास में प्रविष्टि जोड़ेगी (ScriptManager -> AddHistoryPoint) और आपके ASP.NET एप्लिकेशन को एक घटना मिलती है जब भी उपयोगकर्ता ब्राउज़र पर क्लिक करता है / फॉरवर्ड बटन। यह सभी ज्ञात ब्राउज़रों के लिए काम करेगा


0

विश्व स्तर पर, बैक बटन को अक्षम करना वास्तव में बुरा अभ्यास है। लेकिन, कुछ स्थितियों में, बैक बटन की कार्यक्षमता समझ में नहीं आती है।

पृष्ठों के बीच अवांछित नेविगेशन को रोकने का एक तरीका यहां है:

शीर्ष पृष्ठ (फ़ाइल top.php):

<?php
    session_start();
    $_SESSION[pid]++;
    echo "top page $_SESSION[pid]";
    echo "<BR><a href='secondary.php?pid=$_SESSION[pid]'>secondary page</a>";
?>

द्वितीयक पृष्ठ (फ़ाइल secondary.php):

<?php
    session_start();
    if ($_SESSION[pid] != $_GET[pid]) 
        header("location: top.php");
    else {
        echo "secondary page $_SESSION[pid]";
        echo "<BR><a href='top.php'>top</a>";
    }
?>

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


0

यहां तक ​​कि मैंने पहले भी ऐसी ही स्थिति का सामना किया ... और कोई मदद नहीं की। इन चीजों को आजमाएं शायद ये आपके काम आएंगे

लॉगिन पृष्ठ <head>टैग में:

<script type="text/javascript">
    window.history.forward();
</script>

लॉगआउट बटन में मैंने ऐसा किया:

protected void Btn_Logout_Click(object sender, EventArgs e)      
{
    connObj.Close();
    Session.Abandon();
    Session.RemoveAll();
    Session.Clear();
    HttpContext.Current.Session.Abandon();
}

और लॉगिन पृष्ठ पर मैंने उपयोगकर्ता नाम पाठ बॉक्स पर इस तरह ध्यान केंद्रित किया है:

protected void Page_Load(object sender, EventArgs e)
{
    _txtUsername.Focus();
}

उम्मीद है कि यह मदद करता है ... :) किसी ने मुझे इस पृष्ठ को संपादित करने के लिए कैसे सिखा ...


a) अपने उत्तर को संपादित करें b) प्रश्न चिह्न पर क्लिक करें c) उन्नत मदद पर क्लिक करें d) पढ़ें और लागू करें :-) यह भी ध्यान दें कि ctrl-k un / इंडेक्स को चुने हुए ब्लॉक को कोड के रूप में un / format करता है। प्लस फ़ॉर्मेटर टैब को अच्छी तरह से नहीं संभाल सकता है (शायद यहाँ कोई समस्या नहीं है, हालांकि)
क्लियोपेट्रा

0

यदि आपको अपने वेब ऐप में डिलीट और बैकस्पेस कीज़ को धीरे से दबाने की आवश्यकता है, ताकि जब वे आइटम एडिट / डिलीट कर रहे हों तो पेज अप्रत्याशित रूप से पुनर्निर्देशित न हो, तो आप इस कोड का उपयोग कर सकते हैं:

window.addEventListener('keydown', function(e) {
  var key = e.keyCode || e.which;
  if (key == 8 /*BACKSPACE*/ || key == 46/*DELETE*/) {
    var len=window.location.href.length;
    if(window.location.href[len-1]!='#') window.location.href += "#";
  }
},false);

0

इस कोड को आज़माएं। आपको बस इस कोड को मास्टर पेज पर लागू करने की आवश्यकता है और यह आपके लिए सभी पृष्ठों पर काम करेगा

<script type="text/javascript">
    window.onload = function () {
        noBack();
    }
    function noBack() {
        window.history.forward();
    }
</script>
<body  onpageshow="if (event.persisted) noBack();">
</body>

0

योसी शशो के कोड के साथ समस्या यह है कि पेज हर 50 एमएस में शीर्ष पर स्क्रॉल कर रहा है। इसलिए मैंने उस कोड को संशोधित कर दिया है। अब सभी आधुनिक ब्राउज़रों, IE8 और इसके बाद के संस्करण पर इसका काम ठीक है

var storedHash = window.location.hash;
function changeHashOnLoad() {
    window.location.href += "#";
    setTimeout("changeHashAgain()", "50");
}

function changeHashAgain() {
    window.location.href += "1";
}

function restoreHash() {
    if (window.location.hash != storedHash) {
        window.location.hash = storedHash;
    }
}

if (window.addEventListener) {
    window.addEventListener("hashchange", function () {
        restoreHash();
    }, false);
}
else if (window.attachEvent) {
    window.attachEvent("onhashchange", function () {
        restoreHash();
    });
}
$(window).load(function () { changeHashOnLoad(); });

0

यह हमारे लिए काम कर रहा है।

history.pushState(null, null, $(location).attr('href'));
window.addEventListener('popstate', function () {
    history.pushState(null, null, $(location).attr('href'));
});

0
<script>
    $(document).ready(function() {
        function disableBack() { window.history.forward() }

        window.onload = disableBack();
        window.onpageshow = function(evt) { if (evt.persisted) disableBack() }
    });
</script>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.