[Javascript] onbeforeunload संदेश दो बार प्रकट होता है (इंटरनेट एक्सप्लोरर)


Answers

एक URL onclick विशेषता के लिए कोई मान्य मान नहीं है onclick चलाने के लिए जावास्क्रिप्ट निर्दिष्ट करता है; यदि आप किसी div के क्लिक पर कहीं नेविगेट करना चाहते हैं, तो आपके पास 2 मुख्य विकल्प हैं:

  1. एक <a href="yoururl"> div में <a href="yoururl">
  2. एक ही बात करने के लिए जेएस लिखिए, कुछ ऐसा:

पूर्व विधि बेहतर है

Question

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

$(document).ready(function() {
    $('input:not(:button,:submit),textarea,select').change(function () {
        window.onbeforeunload = function () {
            return 'Changes made to this page have not been saved!';
        }
    });
});

यह कार्य केवल कुछ समस्याओं को छोड़कर किया जाता है जब उपयोगकर्ता Internet Explorer का उपयोग कर रहा है और इस तरह से एक लिंक का उपयोग करके नेविगेट करने का प्रयास करता है

<div onclick="window.location=&#39;http://www.domain.com&#39;;">Text</div>

यदि उपयोगकर्ता "इस पृष्ठ पर रहें" का चयन करता है, तो संदेश बॉक्स दो बार दिखाई देता है। और फिर यदि वे दूसरी बार "इस पृष्ठ पर रहें" चुनते हैं, तो डिबगर संदेश के ऊपर दिए गए लिंक को हाइलाइट करता है:

माइक्रोसॉफ्ट जेस्क्रिप्ट रनटाइम त्रुटि: अनिर्दिष्ट त्रुटि।

यह समस्या इंटरनेट एक्सप्लोरर के लिए विशिष्ट प्रतीत होती है। वेब की खोज करते हुए, मैं कई संदर्भों को ढूंढने में सफल रहा हूं जो कि संबंधित बगों की तरह दिखते हैं, अविश्वसनीय रूप से इंटरनेट एक्सप्लोरर के कई संस्करण वापस कर रहे हैं। फिर भी, मुझे माइक्रोसॉफ्ट या किसी उचित फिक्स से कोई टिप्पणी नहीं मिली है। यहां कुछ ऐसे लिंक हैं जिनसे मैंने पाया है कि संबंधित संबंधित हैं।

  1. http://forums.asp.net/t/1199756.aspx/1
  2. क्यों मेरे ऑन-वन्यलोड हैंडलर एक "अनिर्दिष्ट त्रुटि" त्रुटि पैदा कर रहा है?
  3. http://www.telerik.com/community/forums/aspnet-ajax/tabstrip/cancel-on-onbeforeunload-in-ie-6-7-create-js-unspecified-error.aspx
  4. http://scottonwriting.net/sowblog/archive/2005/04/19/163068.aspx
  5. http://www.techtalkz.com/internet-explorer/116662-onbeforeunload-dialog-cancel-button-when-window-location-href-bug.html
  6. http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14213927
  7. http://www.webmasterkb.com/Uwe/Forum.aspx/jscript/4321/IE7-and-onbeforeunload
  8. http://www.bigresource.com/ASP-Javascript-Unspecified-Error-BHoy7ptS.html
  9. http://www.4guysfromrolla.com/articles/042005-1.aspx

क्या कोई एक वैकल्पिक हल सुझा सकता है? ऐसा नहीं लगता है कि कनेक्ट IE बग रिपोर्ट स्वीकार कर रहा है। मैं IE9 का उपयोग कर रहा हूँ