2012-06-05 15 views
8

बंद करता है तो मैं ब्राउज़र या पेज को छोड़कर बंद कर देता हूं और मुझे क्रोम को छोड़कर सभी ब्राउज़रों में काम करना पड़ता है।क्रोम ऑनबेरनलोड लोड ईवेंट जब टैब (या ब्राउजर)

यदि मैं पृष्ठ से दूर नेविगेट करता हूं तो क्रोम सफलतापूर्वक कार्य चलाता है लेकिन अगर मैं टैब बंद करता हूं या ब्राउज़र को पूरी तरह से बंद करता हूं तो इसे नहीं चलाता है।

जो फ़ंक्शन मैं अंत में चल रहा हूं वह एक छवि बनाता है और मेरे सर्वर पर कुछ डेटा भेजता है (किसी भी विश्लेषणात्मक रिपोर्टिंग के समान) उदाहरण: img.src = "url? Data = yyy"। यह छवि जेएस के साथ गतिशील रूप से बनाई गई है।

कोई व्यक्ति कुछ प्रकाश डाल सकता है जो समस्या हो सकती है? मैं इसे कारणों की एक जोड़ी के लिए नीचे संकुचित है))

1 मैं सही घटना का उपयोग नहीं कर रहा हूँ जब टैब बंद (यानी beforeunload नहीं

2) क्रोम वास्तव में समारोह लेकिन छवि नहीं करता है चलाता है नहीं भेजा जाता क्योंकि ब्राउज़र/पृष्ठ बंद हो जाता है।

किसी भी मदद की सराहना की जाती है। धन्यवाद।

if(window.addEventListener){ 
    window.addEventListener("beforeunload", page_unload, false);   
} 
function page_unload(){ 
    var img  = new Image(); 
    var img_src = "http://www.myurl.com?data=yyy" 
    img.src = img_src; 
} 
+0

प्रत्येक क्रोम टैब अपनी प्रक्रिया में सही चल रहा है? इसलिए, यदि आपके पास टैब पर कुछ चल रहा है, भले ही यह चलता है, तो चल रही कोड वाली प्रक्रिया बंद हो जाएगी। अन्यथा आप संभवतः लटकने वाले क्रोम टैबों का एक समूह खोल सकते हैं, जिसे मैंने कभी नहीं देखा है। –

+1

सही, प्रत्येक टैब यह अपनी प्रक्रिया है .. और यह समझ में आता है कि उस प्रक्रिया से जुड़े किसी भी कोड को भी समाप्त होता है। फ़ायरफ़ॉक्स इस स्थिति को गहन तरीके से संभालता है और ऐसा करने के लिए मुझे इसकी आवश्यकता होती है, इसलिए मुझे आशा थी कि मुझे क्रोम – Nik

+3

के संबंध में कुछ याद आया जो आप करने की कोशिश कर रहे हैं, यह संभव नहीं है। 'Onbeforeunload' घटना का उपयोग केवल उपयोगकर्ता को आपके पृष्ठ पर रहने के लिए प्रोत्साहित करने के लिए एक संवाद बॉक्स फेंकने के लिए किया जा सकता है (जब उपयोगकर्ता को आग लगने के लिए पाठ लौटाकर) - जब ईवेंट आग लगती है, तो आपके पास कोई समय नहीं है एक HTTP अनुरोध करने के लिए छोड़ दिया। – duskwuff

उत्तर

0

मैं क्रोम के साथ कोई संबंधित समस्या था और jQuery का उपयोग कर इसे हल:

$(window).unload(function() { 
    //Call your function 
    page_unload(); 
}); 

किसी कारण से jQuery उतारना घटना कुछ मामलों में जहां में क्रोम में बेहतर काम करता है

यहाँ नमूना कोड जावास्क्रिप्ट पहले से लोड ठीक से काम नहीं करता है।

+0

मेरे लिए काम नहीं करता है – TMS