2010-09-13 16 views
12

मैं html पृष्ठ से पहले एक संवाद पॉप अप करना चाहता हूं पृष्ठ को अनलोड करने के लिए कह रहा है या नहीं। यदि हां चुना गया है तो अनलोड जारी रहता है, और यदि कोई नहीं चुना जाता है तो अनलोड ईवेंट रद्द कर दिया जाता है।पृष्ठ से पहले इवेंट कॉलिंग

उत्तर

21

आप टेक्स्ट को "हां"/"नहीं" पर सेट नहीं कर सकते हैं (यह अधिकांश ब्राउज़रों में "ठीक"/"रद्द करें" होगा), लेकिन आप संकेत दे सकते हैं (इसे उपयोग करते समय सावधान रहें) window.onbeforeunload, इस तरह का उपयोग कर किसी भी तरीके से पेज:

window.onbeforeunload = function() { 
    return "Are you sure you wish to leave the page?"; 
} 

इसका उपयोग तभी करें यदि आप एक अच्छे कारण के लिए है, अपने उपयोगकर्ताओं को परेशान नहीं करते। ऐसा कहा जा रहा है, यह पृष्ठ छोड़ते समय संकेत देगा, जिसमें इतिहास को वापस, आगे, रीफ्रेश करना, विंडो/टैब बंद करना, नेविगेट करने या फ़ॉर्म सबमिट करने के लिए एक लिंक पर क्लिक करना शामिल है। तो शायद आप इसे कॉल करना चाहेंगे कहीं जा रहा है कि संकेत नहीं करना चाहिए:

window.onbeforeunload = null; 

उदाहरण के लिए, जानकारी का एक पर्चे को जमा करने के लिए, आप डेटा को खोने जब छोड़ने का संकेत करना चाहते हैं/नहीं, बल्कि जब वास्तव में इसे प्रस्तुत करने।

+0

@ सूरज: उदाहरण के लिए, नीचे एक उत्तर टाइप करना शुरू करें और फिर पृष्ठ छोड़ने का प्रयास करें। :-) स्टैक ओवरफ्लो ठीक है जो निक वर्णन करता है। –

+1

* "तो शायद आप इसे कहीं भी कॉल करना चाहते हैं जो संकेत नहीं देना चाहिए ..." * या फ़ंक्शन में डिस्कनेक्ट करने के बजाए फ़ंक्शन का उपयोग करें या फ़ंक्शन में चेक करें। यदि फ़ंक्शन स्ट्रिंग नहीं लौटाता है, तो यह उपयोगकर्ता को संकेत नहीं देता है। –

+1

@ सूरज: उदाहरण: http://jsbin.com/aquse4 –

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