jquery
  • onbeforeunload
  • siebel
  • 2012-03-27 16 views 5 likes 
    5

    मैं एक एंटरप्राइज़ एप्लिकेशन पर काम कर रहा हूं जहां गतिशील रूप से जेनरेट किया गया है और हमारे पास कोड पर नियंत्रण नहीं है। के रूप में नियंत्रण के अधिकांश उन्हेंonbeforeunload - चुनिंदा घटनाओं से जुड़ें

    <select name="s_10_1_1_0" onchange = 'SWESubmitForm(document.SWEForm10_0,s_5,"","1-E0RHB7")' id='s_10_1_1_0' tabindex=1997 > 
    
    <input type="text" name='s_10_1_11_0' value='' onchange = 'SWESubmitForm(document.SWEForm10_0,s_7,"","1-E0RHB7")' id='s_10_1_11_0' tabindex=1997 maxlength="30"> 
    

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

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

    //this identifies the unique page name 
    var viewName = $('input[name="SWEView"]').val(); 
    // if I am on desired page bind the event so that now dialog is presented to user 
    if(viewName == "XRX eCustomer Create Service Request View"){ 
        $(window).bind('beforeunload', function(){ 
        return 'Your Inquiry has not been submitted yet.'; 
    }); 
    } 
    

    लेकिन समस्या यह है इस संवाद हर बार उपयोगकर्ता के रूप में किसी भी क्षेत्र के एक मूल्य में परिवर्तन आता है (मुझे विश्वास है कि onchange घटना के लिए SWESubmitForm कोड वर्तमान की वजह से है)।

    मैं उपयोगकर्ता को फॉर्म के बाहर किसी भी अन्य लिंक पर क्लिक करता हूं या दूसरे शब्दों में पृष्ठ पर पृष्ठ चुनने के लिए चुनिंदा घटनाओं (विंडो बंद करने सहित) पर क्लिक करने के लिए संवाद को फिर से शुरू करना चाहता हूं।

    कृपया मदद

    उत्तर

    6

    .onbeforeunload() वैश्विक है। आप इसे पृष्ठ छोड़ने के कुछ तरीकों के लिए ट्रिगर नहीं कर सकते हैं। यदि ईवेंट हैंडलर स्थापित है तो यह कोई फर्क नहीं पड़ता कि दर्शक पृष्ठ को कैसे छोड़ रहा है।

    आप अपने आंतरिक राज्य का ट्रैक रख सकते हैं और यह तय कर सकते हैं कि onbeforeunload() हैंडलर में कुछ भी संकेत देना है या कुछ भी वापस नहीं करना है (इसलिए कोई संकेत नहीं दिया गया है)।

    इस रूप में गूगल कई विचार प्राप्त करने पर बहुत अधिक है यह ध्यान देने योग्य है कि इस सवाल का जवाब अब काम नहीं करता लायक होगा

    //this identifies the unique page name 
    var viewName = $('input[name="SWEView"]').val(); 
    // if I am on desired page bind the event so that now dialog is presented to user 
    if(viewName == "XRX eCustomer Create Service Request View"){ 
        $(window).bind('beforeunload', function() { 
         // figure out whether you need to prompt or not 
         if (myStateSaysToPrompt) { 
          return 'Your Inquiry has not been submitted yet.'; 
         } else { 
          return; // no prompt 
         } 
        }); 
    } 
    

    अद्यतन:

    तो, अगर आप इस तरह कोड हो सकता था।

    $(window).bind('beforeunload', function() { 
    

    ध्यान दें कि घटना में अब 'चालू' नहीं है। JQuery के बाद के संस्करणों में पिछले onbeforeunload का उपयोग करने से कुछ भी नहीं हो रहा है।

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

    • कोई संबंधित समस्या नहीं^_^