दिलचस्प पोस्ट
आईओएस 8 बीटा संस्करण के साथ आईओएस सिम्युलेटर खोलने में त्रुटि: "आईओएस सिम्युलेटर को बूट करने में असमर्थ" जावास्क्रिप्ट: एक * स्ट्रिंग * संख्या के दशमलव की संख्या कैसे प्राप्त करें? Numpy / scipy में blas / lapack लिंकिंग को कैसे जांचें? कल आधी रात की जावा दिनांक ऑब्जेक्ट और आधी रात को कैसे बनाऊं? आइकन के साथ Android स्लाइडिंगटैबआउटआउट पायथन के दुभाषिया के आउटपुट को कैप्चर कैसे करें और टेक्स्ट विजेट में दिखाएं? ग्रैडल की निर्भरता कैश भ्रष्ट हो सकती है (यह कभी-कभी नेटवर्क कनेक्शन टाइमआउट के बाद होती है।) गिनती के साथ सूची सरणी डुप्लिकेट जेफैम पर क्लोज बटन को क्लिक करने पर कुछ करें विशिष्ट आईडी मूल्यों के आधार पर MySQL आदेश मैं एक बाइट डालें कैसे एक एसक्यूएल सर्वर VARBINARY कॉलम में उपयोगकर्ता को अपलोड की गई फ़ाइल को कैसे पढ़ा जाए, इसे डाटाबेस में सहेजे बिना गैर-एस्की वर्णों को उजागर करने के लिए विम कैसे प्राप्त करें? Scope_identity () उपयोग के साथ नीडिंत थोक सम्मिलित करने का सबसे तेज़ तरीका है? सी # में फिर से प्रवेशक ताले

ब्राउज़र विंडो को बंद करने से कैसे रोकें?

ब्राउज़र विंडो को बंद करने पर एक चेतावनी प्राप्त करने के लिए मैंने निम्नलिखित कोड की कोशिश की:

window.onbeforeunload = confirmExit; function confirmExit() { return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?"; } 

यह काम करता है, लेकिन यदि पेज में एक हाइपरलिंक होता है, तो उस हाइपरलिंक पर क्लिक करके एक ही चेतावनी बढ़ जाती है मुझे केवल चेतावनी दिखाने की ज़रूरत है जब मैं ब्राउज़र विंडो को बंद करता हूं और हाइपरलिंक्स पर क्लिक करने पर नहीं।

Solutions Collecting From Web of "ब्राउज़र विंडो को बंद करने से कैसे रोकें?"

अपना कोड इस रूप में रखें और लिंक को संभाल करने के लिए jQuery का उपयोग करें:

 $(function () { $("a").click(function { window.onbeforeunload = null; }); }); 

एक और कार्यान्वयन निम्नलिखित है जिसे आप इसे इस वेबपेज में पा सकते हैं: http://ujap.de/index.php/view/JavascriptCloseHook

 <html> <head> <script type="text/javascript"> var hook = true; window.onbeforeunload = function() { if (hook) { return "Did you save your stuff?" } } function unhook() { hook=false; } </script> </head> <body> <!-- this will ask for confirmation: --> <a href="http://google.com">external link</a> <!-- this will go without asking: --> <a href="anotherPage.html" onClick="unhook()">internal link, un-hooked</a> </body> </html> 

यह क्या करता है कि आप एक फ्लैग के रूप में एक वैरिएबल का इस्तेमाल करते हैं

आप हाइपरलिंक क्लिक का पता लगा सकते हैं, लेकिन आप यह निर्धारित नहीं कर सकते कि उपयोगकर्ता:

  • पृष्ठ को रीफ़्रेश करने का प्रयास किया
  • ब्राउज़र टैब को बंद करने का प्रयास किया
  • ब्राउज़र विंडो को बंद करने का प्रयास किया।
  • यूआरएल बार में एक अन्य यूआरएल इनपुट करें और एंट दबाएं।

इन सभी कार्रवाइयों ने घटना के बारे में और सटीक जानकारी के बिना window होने beforeunload घटना को उत्पन्न किया है।

उपरोक्त कार्रवाई करते समय पुष्टिकरण संवाद प्रदर्शित करने के लिए, और जब हाइपरलिंक पर क्लिक किया गया था, तो इसे प्रदर्शित न करें, इन चरणों का पालन करें:

  • window से beforeunload ईवेंट beforeunload श्रोता को असाइन करें, जो एक स्ट्रिंग के रूप में पुष्टिकरण पाठ देता है, जब तक कोई विशिष्ट चर (फ्लैग) सही पर सेट नहीं किया जाता true
  • document को ईवेंट पर click करें असाइन click । जांचें कि a तत्व क्लिक किया गया है ( event.target.tagName )। यदि हां, तो true झंडा सेट करें।

document को submit घटना श्रोता को असाइन करके आपको फ़ॉर्म सबमिशन भी प्रबंधित करना चाहिए।

आपका कोड इस तरह दिख सकता है:

 let disableConfirmation = false; window.addEventListener('beforeunload', event => { const confirmationText = 'Are you sure?'; if (!disableConfirmation) { event.returnValue = confirmationText; // Gecko, Trident, Chrome 34+ return confirmationText; // Gecko, WebKit, Chrome <34 } else { // Set flag back to false, just in case // user stops loading page after clicking a link. disableConfirmation = false; } }); document.addEventListener('click', event => { if (event.target.tagName.toLowerCase() === 'a') { disableConfirmation = true; } }); document.addEventListener('submit', event => { disableConfirmation = true; }); 
 <p><a href="https://stacksnippets.net/">google.com</a></p> <form action="https://stacksnippets.net/"><button type="submit">Submit</button></form> <p>Try clicking the link or the submit button. The confirmation dialog won't be displayed.</p> <p>Try reloading the frame (right click -> "Reload frame" in Chrome). You will see a confirmation dialog.</p>