beforeunload
जब भी उपयोगकर्ता किसी कारण से आपका पृष्ठ छोड़ता है, तो यह घटना आग हो जाती है।
उदाहरण के लिए, यह निकाल दिया जाएगा यदि उपयोगकर्ता एक फॉर्म सबमिट करता है, एक लिंक पर क्लिक करता है, विंडो (या टैब) को बंद करता है, या पता बार, खोज बॉक्स, या बुकमार्क का उपयोग करके एक नए पृष्ठ पर जाता है।
आप निम्न कोड के साथ फॉर्म सबमिशन और हाइपरलिंक (अन्य फ्रेम को छोड़कर) को बाहर कर सकते हैं:
var inFormOrLink;
$('a').on('click', function() { inFormOrLink = true; });
$('form').on('submit', function() { inFormOrLink = true; });
$(window).on("beforeunload", function() {
return inFormOrLink ? "Do you really want to close?" : null;
})
1.7 से अधिक पुराने jQuery के संस्करणों के लिए, यह प्रयास करें:
var inFormOrLink;
$('a').live('click', function() { inFormOrLink = true; });
$('form').bind('submit', function() { inFormOrLink = true; });
$(window).bind("beforeunload", function() {
return inFormOrLink ? "Do you really want to close?" : null;
})
live
विधि के साथ नहीं काम करता है submit
, इसलिए यदि आप एक नया रूप जोड़ने के लिए, आप इसे भी करने के लिए हैंडलर बाध्य करने के लिए की आवश्यकता होगी घटना,।
ध्यान दें कि यदि कोई भिन्न ईवेंट हैंडलर सबमिट या नेविगेशन को रद्द करता है, तो आप पुष्टि प्रॉम्प्ट खो देंगे यदि विंडो वास्तव में बाद में बंद हो जाती है। आप उस समय submit
और click
घटनाओं को रिकॉर्ड करके और beforeunload
बाद में कुछ सेकंड से अधिक होने पर जाँच कर सकते हैं।