2011-04-04 16 views
16

से पॉपअप विंडो को व्यावहारिक रूप से कैसे खोलें अग्रिम धन्यवाद!(क्रोम एक्सटेंशन) पृष्ठभूमि.html

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

या क्या मुझे ब्राउज़र पर मेरे एक्सटेंशन के आइकन का स्थान मिल सकता है? शायद मैं पॉपअप विंडो की तरह दिखने के लिए एक्सटेंशन आइकन के नीचे एक विंडो खींच सकता हूं और प्रदर्शित कर सकता हूं।

+0

बस रिकॉर्ड के लिए: https://code.google.com/पी/क्रोमियम/मुद्दों/विस्तार?id = 399859 – HaNdTriX

+0

एक दृष्टिकोण जो काम कर सकता है, एक्सटेंशन के मैनिफेस्ट में पॉप अप के लिए कीबोर्ड शॉर्टकट सेट करना होगा, फिर उस कुंजीपटल शॉर्टकट को कृत्रिम रूप से ट्रिगर करने के लिए निष्पादन योग्य फ़ाइल का उपयोग करें। किसी एक्सटेंशन से निष्पादन योग्य फ़ाइल के साथ संवाद करने के तरीके के बारे में अधिक जानकारी के लिए [मूल संदेश] [https://developer.chrome.com/extensions/nativeMessaging) देखें। – Miscreant

उत्तर

4

यदि पॉपअप द्वारा आपका मतलब ब्राउज़र क्रिया पॉपअप है तो आप सही हैं, प्रोग्रामेटिक रूप से इसे खोलने का कोई तरीका नहीं है।

आप content script के माध्यम से सीधे किसी पृष्ठ पर अपनी पॉपअप से जो कुछ भी चाहते हैं उसे एम्बेड कर सकते हैं। मुझे लगता है कि यह सबसे अच्छा समाधान होगा।

यदि आपके पॉपअप में कुछ भी फैंसी नहीं है, तो शायद desktop notifications आपके लिए पर्याप्त होगा।

एक नई विंडो बनाना और यूआरएल बार के तहत इसे पोजिशन करना बहुत अजीब समाधान होगा और बहुत उपयोगकर्ता के अनुकूल नहीं होगा।

+2

फ़ायरफ़ॉक्स के पास ओपनपॉप क्यों है लेकिन क्रोम नहीं है? – Pacerier

10

यह उस पर एक उपयोगकर्ता क्लिक किए बिना खोलने के लिए एक्सटेंशन विंडो प्राप्त करने के लिए असंभव है ... लेकिन, आप विस्तार पॉपअप पेज एक नए टैब में खोलने के लिए इस प्रकार प्राप्त कर सकते हैं:

1) सेट अपने अपने मैनिफ़ेस्ट फ़ाइल में background page ...

"background_page": "background.html", 

यह वह जगह है जहाँ आप को देखने के लिए कि क्या विशेष टैग का पता चला है कोड चलेंगे ... पृष्ठभूमि पृष्ठ पृष्ठभूमि में निरंतर कोड चला सकते हैं, और यह पर निर्भर है आप यह जांचने के लिए एक दोहराना लूप सेट करना चाहते हैं कि क्या आप चर की स्थिति हर किसी के लिए सच है या नहीं अक्सर ...

2) अपने मैनिफ़ेस्ट फ़ाइल में tabs permission ... सक्षम

"permissions": [ "tabs" ], 

यह अनुमति चरण 3 (के लिए आवश्यक है पृष्ठभूमि पृष्ठ नए टैब)

को खोलने के लिए अनुमति देता है 3) पृष्ठभूमि पृष्ठ में, create पर कॉल करें और एक्सटेंशन पॉपअप यूआरएल को इंगित करें।

if(condition == true){ 
    chrome.tabs.create({url:"popup.html"}); 
} 
7

This guy विपरीत प्रभाव चाहता है और उसके पॉपअप विंडो खोलने के लिए नहीं नहीं मिल सकता है। अपने पॉपअप पृष्ठ खोलने के लिए अपने कोड पर एक नजर डालें;)

+0

यह वास्तव में काम करता है ... – jtblin

+1

दुर्भाग्य से अब और काम नहीं करता है :( – Oleg

5

आप ब्राउज़र कार्य पर नहीं नकली क्लिक कर सकते हैं, लेकिन आप अभी भी हमेशा की तरह खिड़की पॉपअप के रूप में पृष्ठभूमि स्क्रिप्ट से पॉपअप पेज खोल सकते हैं और यह उम्मीद के रूप में काम करेंगे। उदाहरण के लिए आपके ब्राउज़र कार्रवाई के HTML पेज "popup.html" है

window.open("popup.html", "extension_popup", "width=300,height=400,status=no,scrollbars=yes,resizable=no"); 

नोट: यदि आप यह केवल पृष्ठभूमि स्क्रिप्ट (घटना पृष्ठ) से कॉल कर सकते हैं। इसलिए आपको अपनी मेनिफेस्ट फ़ाइल में पृष्ठभूमि स्क्रिप्ट पंजीकृत करने और एक ईवेंट हैंडलर जोड़ने की ज़रूरत है, जो पॉपअप खोल देगा। आप इवेंट पेजों के बारे में अधिक पढ़ सकते हैं https://developer.chrome.com/extensions/event_pages

+0

नोट: यदि विंडो.ऑपेन को किसी उपयोगकर्ता क्रिया के परिणामस्वरूप नहीं कहा जाता है, तो क्लिक करें, तो इसे अधिकांश ब्राउज़रों द्वारा पॉपअप के रूप में अवरुद्ध कर दिया जाएगा –

+0

@JanacMeena यह Chrome एक्सटेंशन पर लागू नहीं होता है window.open – Miscreant

+0

इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए। इतना आसान, लेकिन काम कर रहा है! धन्यवाद @devza! – kecman

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