2012-02-22 36 views
5

निम्नलिखित सार: https://gist.github.com/1876791 (this question में डेमो से उधार) js में window.onbeforeunload के उपयोग के एक मृत सरल उदाहरण है।सफारी "लोड हो रहा" रहता है

समस्या

हमारे पास है निम्नलिखित (सफारी 5.1.3 के साथ होता है और नहीं नवीनतम क्रोम संस्करण):

  1. जाएँ यह पेज: http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm
  2. किसी एक लिंक पर क्लिक करें, तो आप करेंगे एक चेतावनी आप पूछ यदि आप वास्तव में इस पृष्ठ को छोड़ना
  3. पर क्लिक करें "पृष्ठ पर रहने के" चाहते
  4. पृष्ठ पुनः लोड करें cmd-R का उपयोग कर मिलता है। आप किसी अन्य समय पूछा जाएगा कि क्या तुम सच में पृष्ठ को छोड़ना
  5. पर क्लिक करें "पृष्ठ पर रहने के" चाहते हैं।
  6. सफारी एक "लोड हो रहा है" स्थिति में रहता है, प्रगति बार अगर यह अगला पृष्ठ लोड होने थे के रूप में दिखाई देने के कारण।

इस सफारी से एक बग है? क्या इस समस्या को रोकने का कोई तरीका है?

+0

यह अजीब है, क्योंकि खिड़की की कोशिश भी कर रहा है। स्टॉप() सफारी को पृष्ठ को रीफ्रेश करने का नाटक करने से रोक नहीं पाएगा। मुझे लगता है कि यह एक बग है, इसे [वेबकिट लड़कों] (http://www.webkit.org/quality/reporting.html) पर रिपोर्ट करने का प्रयास करें – Roberto

+0

यह भी होता है यदि मैं एक से अधिक बार ताज़ा करता हूं।मुझे लिंक में से किसी एक पर क्लिक करने की आवश्यकता नहीं है। मैं एक पीसी पर सफारी 5.1.2 चला रहा हूँ। –

उत्तर

1

मैं इस मुद्दे ओपी के चरण 2 और 3 को फिर से लोड दर्शाती है इस मुद्दे के किसी भी रूप लंघन यहाँ तक कि जब पुन: पेश करने में सक्षम था: यहाँ कोड है। पुनरुत्पादन के लिए न्यूनतम कदम:

  1. the page in question पर जाएं।
  2. हिट रीलोड।
  3. "पृष्ठ पर बने रहें" बटन पर क्लिक करें।

लोड प्रगति नेत्रहीन पूर्व लगे हुए सही पुनः लोड हिट के बाद है और जाहिरा तौर पर "चट्टान किनारे पर फांसी" स्थिति के परिपक्व -प्रकार संवाद करने के प्रयास में पुष्टि संवाद (के पूरे जीवन के लिए बहुत रहता है ;) हालांकि:

  • जब संवाद "स्टे पृष्ठ पर" बटन के साथ खारिज किया जाता है, उस पर रोक X प्रतीक और लोड प्रगति अभी भी लगे हुए हैं और 10% निशान के आसपास कहीं जमे हुए छोड़ देता है।
  • यह "लोडिंग" किसी भी माध्यम से रद्द नहीं किया जा सकता है (कीबोर्ड, बटन, स्क्रिप्ट)।
  • वेब इंस्पेक्टर में नेटवर्क टैब कोई लोडिंग नहीं हो रहा है।

यह वास्तव में वेबकिट/सफारी यूआई बग जैसा दिखता है - यह ऑन-पेज स्थितियों में प्रगति पट्टी को अक्षम करने में विफल रहता है। सबसे अच्छा यह Webkit team पर रिपोर्ट करना होगा या, क्योंकि आप इसे सफारी में अनुभव करते हैं, शायद Safari team बेहतर होगा।

0

कृपया इस पृष्ठ- देख>https://developer.mozilla.org/en/DOM/window.onbeforeunload

आप घटना संभाल चाहिए। पृष्ठ पर उदाहरण ठीक काम कर रहा है।

window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
    e.returnValue = 'Any string'; 
    } 

    // For Safari 
    return 'Any string'; 
}; 
+0

मैं आपके उत्तर के बारे में पहली जगह पर संदेह कर रहा था। तब मैंने सोचा कि '(ई)' के बजाय '(ई) 'जोड़ना काम करेगा। लेकिन यह सटीक पृष्ठ https://gist.github.com/1960398 (बिल्कुल आपका जेएस कोड ले रहा है) वह बग दिखा रहा है जो मैं अपने प्रश्न में बात कर रहा हूं। – rpechayr

+0

यह 'मेरा जेएस कोड' नहीं था। अगर आपने इसे चेक किया हो तो मैंने स्रोत को एक लिंक के रूप में दिया। – zipizip

+0

हाँ मैं भी इस कोड में आया था। मेरी टिप्पणी के लिए खेद है वास्तव में स्पष्ट नहीं था। – rpechayr

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