मैं Google क्रोम के लिए एक एक्सटेंशन विकसित कर रहा हूं। मेरी पृष्ठभूमि स्क्रिप्ट, हर बार, एक सर्वर पर अधिकृत होती है जो XMPP API का उपयोग करती है, और PubSub नोड के लिए सदस्यता लेती है। मुझे बाहर निकलने पर सदस्यता समाप्त करने की आवश्यकता है, अन्यथा डमी सदस्यता सर्वर पर रहेगी। क्या Google क्रोम एक्सटेंशन API में कोई onBrowserClose
ईवेंट है?इवेंट ऑन ब्रॉउज़र Google क्रोम एक्सटेंशन के लिए बंद करें?
उत्तर
क्रोम एक्सटेंशन API में ऐसी कोई घटना नहीं है।
वहाँ हालांकि एक chrome.windows.onRemoved
घटना है कि हर बार एक खिड़की बंद कर देता सक्रिय करता है। मैंने सोचा कि अगर आप अंतिम विंडो बंद कर देते हैं तो आप इस घटना में जांच सकते हैं, लेकिन दुर्भाग्य से क्रोम की असीमित प्रकृति के कारण यह काम नहीं करता है।
क्या मैं onRemoved
ईवेंट हैंडलर में एक साधारण AJAX अनुरोध चल रहा था की कोशिश की। एजेक्स अनुरोध सर्वर पर कभी नहीं मिला, क्योंकि क्रोम घटना को चलाने से पहले ही बंद कर चुका था (या सिर्फ इसे नजरअंदाज कर दिया था)।
अंतिम उत्तर बनाना: नहीं, वर्तमान में आप नहीं कर सकते हैं, जहां तक मुझे पता है। अपडेट पर ध्यान देने के लिए आप निम्नलिखित बग रिपोर्ट को http://crbug.com/30885 पर तारांकित करना चाहेंगे।
प्रतिक्रिया के लिए धन्यवाद, वास्तव में मैंने पुराने स्कूल के रास्ते में जाने का फैसला किया, बस स्थानीय स्टोरेज में पिछली सब्स्क्राइबेशन जानकारी को सहेजें और बैकग्राउंड स्क्रिप्ट को फिर से लोड करते समय सदस्यता रद्द करें =) – simple
एक ब्राउज़र पास घटना जोड़ा जा रहा है एक बहुत लगातार अनुरोध है। अपडेट के लिए स्टार http://crbug.com/30885। और जब एक कुंजी प्रेस के माध्यम से ब्राउज़र बंद हो जाता है तो यह पता लगाने के लिए एक चालाक हैक के लिए बग रिपोर्ट पढ़ें।
आप मामले को पकड़ने जब खुले टैब की संख्या 0 है, तो आप उस का इलाज कर सकते एक क्रोम OnClose घटना के रूप में। मेरे मामले में, क्रोम बंद होने से पहले मुझे डेस्कटॉप अधिसूचना रद्द करना होगा क्योंकि यह अन्यथा दुर्घटनाग्रस्त हो रहा था। इस तरह मैंने किया:
1. निम्नलिखित का उपयोग करके एक चर NUM_TABS प्रारंभ:chrome.tabs.getAllInWindow(null, function(tabs){
console.log("Initial tab count: " + tabs.length);
num_tabs = tabs.length;
});
2. वृद्धि NUM_TABS जब एक टैब बनाई गई है:
chrome.tabs.onCreated.addListener(function(tab){
num_tabs++;
console.log("Tab created event caught. Open tabs #: " + num_tabs);
});
3. घटते क्रम में num_tabs जब कोई टैब हटा दिया जाता है और आपके ब्राउज़र को ईवेंट हैंडलर पर रोकता है तो num_tabs = 0
chrome.tabs.onRemoved.addListener(function(tabId){
num_tabs--;
console.log("Tab removed event caught. Open tabs #: " + num_tabs);
if(num_tabs == 0)
notification.cancel();
});
क्या यह काम क्रोम की एसिंक प्रकृति को भी देता है, क्योंकि कोडिंगबग का जवाब कहता है? –
यदि आपके ब्राउज़र में कोई एक्सटेंशन है, जिसके पास "पृष्ठभूमि" की अनुमति है, तो इसे देखें -> https://developer.chrome.com/extensions/declare_permissions, क्रोम तब भी बाहर नहीं निकलेगा जब आप सोचते हैं। आपको प्रक्रिया को स्पष्ट रूप से समाप्त करना होगा या छोड़ना या कुछ बल देना होगा। – ankitG
यह एक मेरे लिए काम करता है:
chrome.windows.onRemoved.addListener(function(windowId){
alert("!! Exiting the Browser !!");
});
यह chrome.windows
बजाय chrome.tabs
लेता है।
आपके पास एकाधिक क्रोम विंडो हो सकती हैं और यह हर बार बंद हो जाती है, न कि आखिरी विंडो बंद होने पर। – s3m3n
टीएल; डीआर:window.onunload
घटना का प्रयास करें, यह कुछ मामलों के लिए काम करता है।
यह उल्लेख किया गया था इससे पहले कि हम आम तौर पर onBrowserClose
घटना की तरह कुछ संभाल सकते हैं और बंद करने से ब्राउज़र को रोकने के रूप में। लेकिन कुछ मामलों के लिए हम कुछ तुल्यकालिक करने के लिए window.onunload
घटना का उपयोग कर सकते हैं, और यह काम करता है, तो यह वास्तव में तुल्यकालिक।
मेरे अनुभव से आप कम से कम कर सकते हैं:
- एचटीएमएल 5
localStorage
(जो तुल्यकालिक है) में (उदाहरण के लिए लॉग) में कुछ जानकारी की बचत करें। - कुछ असीमित क्रोम एक्सटेंशन API फ़ंक्शन पर कॉल करें लेकिन आपको परिणाम नहीं मिल सकता है। (यह मेरे लिए काम करता है! हाँ!)
- प्रदर्शन सिंक्रोनस XMLHTTPRequest (हाँ, कभी-कभी यह काम करता है)।
- 1. Google क्रोम एक्सटेंशन
- 2. Google क्रोम एक्सटेंशन
- 3. Google क्रोम एक्सटेंशन
- 4. Google क्रोम एक्सटेंशन - सर्वर
- 5. Google क्रोम एक्सटेंशन - डीओएम
- 6. Google क्रोम एक्सटेंशन
- 7. Google क्रोम एक्सटेंशन
- 8. Google क्रोम एक्सटेंशन: माउस को
- 9. Google क्रोम एक्सटेंशन से कुकीज़ एक्सेस करें
- 10. स्वचालित Google क्रोम एक्सटेंशन स्थापना
- 11. Google क्रोम एक्सटेंशन और एनपीएपीआई
- 12. Google क्रोम एक्सटेंशन सापेक्ष पथ
- 13. सेट अंतराल Google क्रोम एक्सटेंशन
- 14. Google क्रोम/क्रोमियम एक्सटेंशन में कीबोर्ड शॉर्टकट
- 15. क्रोम एक्सटेंशन
- 16. क्रोम एक्सटेंशन: क्रोम
- 17. Google क्रोम एक्सटेंशन सरल रीस्ट क्लाइंट
- 18. क्रोम एक्सटेंशन
- 19. Google क्रोम एक्सटेंशन: पृष्ठ को चुपचाप
- 20. एक्सटेंशन में Google क्रोम सॉकेट एपीआई
- 21. क्रोम एक्सटेंशन
- 22. Google क्रोम एक्सटेंशन पर सुरक्षित संग्रहण
- 23. Google क्रोम ब्राउज़र एक्सटेंशन का पता लगाना
- 24. Google क्रोम एक्सटेंशन - प्रोग्रामेटिक ओपन पॉपअप
- 25. जावास्क्रिप्ट ऑन होवर इवेंट
- 26. हाईचार्ट्स ऑन रीडी इवेंट?
- 27. Google क्रोम एक्सटेंशन - ऑम्निबार पर ध्यान केंद्रित करें
- 28. Google क्रोम एक्सटेंशन में अधिसूचना से वर्तमान टैब स्विच करें
- 29. क्रोम एक्सटेंशन
- 30. क्रोम एक्सटेंशन के आइकन
ध्यान रखें कि ब्राउजर के बाहर निकलने के लिए अन्य तरीके हैं, जिनमें पावरऑफ और क्रैश भी शामिल हैं। यहां तक कि यदि सामान्य रूप से बाहर निकलने वाले ब्राउज़र की जांच करने के लिए 100% विश्वसनीय तरीका है, तो भी आपके पास छेद होगा। –