2012-11-03 10 views
6

मैं क्रोम एक्सटेंशन विकसित कर रहा हूं और मैं जानना चाहता हूं कि आइकन को फिर से क्लिक करके पॉपअप को बंद करना संभव है या नहीं, जिससे आप पॉपअप खोल सकते हैं: मैंने कोशिश की कुछ भी ऐसा लगता है कि आपको इसे बंद करने के लिए कहीं और क्लिक करना होगा। दस्तावेज़ों में onClicked घटना है:ब्राउज़र क्रिया आइकन पर फिर से क्लिक करके क्रोम एक्सटेंशन पॉपअप बंद करें

ब्राउज़र क्रिया आइकन पर क्लिक होने पर निकाल दिया गया। यदि ब्राउज़र क्रिया में पॉपअप (http://developer.chrome.com/extensions/browserAction.html#popups) है तो यह ईवेंट आग नहीं लगेगा।

अग्रिम धन्यवाद।

[अद्यतन] मैं निम्नलिखित और यह आधा काम करता है की कोशिश की (!): Popup.html में 1. मैं popup.js लिंक; 2. popup.js background.js में निहित चर के मान को पढ़ता है;

var currentStatus = chrome.extension.getBackgroundPage().open; 
if(currentStatus==0){ 
    chrome.extension.getBackgroundPage().open=1; 
}else{ 
    chrome.extension.getBackgroundPage().open=0; 
    window.close(); 
} 

क्या होता है: पहला क्लिक एप्लिकेशन को खोलता है, दूसरा यह बंद कर देता है, लेकिन यह आइकन पर कोई सामग्री के साथ एक माइक्रो पॉपअप बनी हुई है। अगर मैं इसे हटा देता हूं, तो मैं अपने लक्ष्य तक पहुंच गया।

+1

मैं दृढ़ता, 'open' तुलना में एक अलग संपत्ति लेने के लिए सलाह देते हैं क्योंकि अब आप में निर्मित समारोह' पृष्ठभूमि पृष्ठ के window.open' अधिलेखित कर रहे हैं: यहाँ है कि मैं क्या पॉपअप जावास्क्रिप्ट फ़ाइल में किया था है। –

+0

@Rob डब्ल्यू: मैंने उस कोड को हटा दिया, क्योंकि मुझे इसे सही तरीके से काम करने के लिए कोई रास्ता नहीं मिला। आपके कमेंट के लिए धन्यवाद! – ContentiousMaximus

+1

ऐसा लगता है कि क्रोम 28 में, ब्राउज़र एक्शन आइकन पर क्लिक करने से दूसरी बार पॉप-अप बंद हो जाएगा, कोई विशेष कोड आवश्यक नहीं है। –

उत्तर

3

onClicked ईवेंट को कॉल किया जाता है यदि आपके एक्सटेंशन की ब्राउज़र कार्रवाई मैनिफेस्ट में default_popup को परिभाषित नहीं करती है। दस्तावेज़ीकरण से यह नोट इस बारे में नहीं है कि पॉपअप वर्तमान में खुला है या नहीं।

यदि मैनिफेस्ट default_popup को परिभाषित करता है तो बटन को फिर से क्लिक करके प्लगइन को बंद कर देता है। Mousedown बंद हो जाता है और माउसअप खुलता है। (तो बटन को दबाकर और दूर खींचने और माउस को रिहा पॉपअप बंद करता है, कि नहीं किसी को भी इस करना चाहिए।)

मैं default_popup निर्धारित करने की अनुशंसा और पॉपअप कि window.close; साथ पॉपअप बंद कर देता है के लिए html में एक बटन बनाने , या अपने पॉपअप के उपयोग मामले में एक बिंदु खोजें जहां समापन समझ में आता है।

1

वैसे यह एक लंबा समय रहा है, और समस्या/बग अभी भी क्रोम ब्राउज़र पर बनी हुई है। मुझे एक वर्कअराउंड मिला है, यह बहुत अच्छा नहीं है, लेकिन मुझे जो चाहिए वह करता है - दूसरी आइकन पर विंडो बंद कर देता है।

if(localStorage.getItem('firstClick')==='true'){ 
    localStorage.setItem('firstClick', 'false'); 
    window.close(); 
} 
else { 
    localStorage.removeItem('firstClick'); 
    localStorage.set('firstClick', 'true') 
} 
संबंधित मुद्दे