2010-03-09 18 views
17

मैंने क्रोम एक्सटेंशन बनाया है और window.open का उपयोग कर popup.html फ़ाइल खोलने में कामयाब रहा है।क्रोम एक्सटेंशन: ऑनक्लिक एक्सटेंशन आइकन, नए टैब में पॉपअप.html खोलें

<script type="text/javascript" language="JavaScript"> 
    chrome.tabs.create('url': 'popup.html'); 

मैं सिर्फ गलत जगह पर कोड रखने कर रहा हूँ या यह गलत कोड पूरी तरह है: लेकिन मैं एक नए टैब में खोलना चाहते हैं, मैं सहित अलग अलग तरीकों की बहुत सारी की कोशिश की है?

+0

इस जवाब का प्रयास करें: http://stackoverflow.com/a/36996729/5309803 ... यह मुझे –

उत्तर

20

आप पॉपअप.html को एक नए टैब में क्यों खोलना चाहते हैं? इसके लिए आपको एक अलग पृष्ठ बनाना चाहिए। वैसे भी, यदि आप popup.html को खोलना चाहते हैं, तो एक नए टैब में, आपको एक्सटेंशन यूआरएल में पास करना होगा।

http://code.google.com/chrome/extensions/extension.html#method-getURL

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) { 
    // Tab opened. 
}); 
+4

लिए काम करता है यह टुकड़ा करने की जरूरत है पृष्ठभूमि पृष्ठ से बुलाया जाए, इसलिए यदि आप किसी सामग्री स्क्रिप्ट से टैब खोलने का प्रयास कर रहे हैं, तो पृष्ठभूमि पृष्ठ पर एक संदेश भेजें जो इस कोड को ट्रिगर करेगा। इस तरह संदेश भेजने पर उचित पृष्ठ यहां दिया गया है: http://code.google.com/chrome/extensions/messaging.html –

+2

मुझे 'url' को लपेटना पड़ा: chrome.extension.getURL ('popup.html') कोष्ठक के भीतर। {'url': chrome.extension.getURL ('popup.html')} – AdamB

2

उपयोग chrome.tabs.create (ऑब्जेक्ट गुण, फ़ंक्शन कॉलबैक) http://code.google.com/chrome/extensions/tabs.html

वस्तु गुण windowId, सूचकांक, यूआरएल और चयनित के लिए खेतों को रख सकती पर वर्णित है। वैकल्पिक कॉलबैक फ़ंक्शन को नव निर्मित टैब का टैब ऑब्जेक्ट प्राप्त होता है।

तो सबसे सरल उदाहरण वर्तमान विंडो में एक नया टैब बनाने के लिए और करने के लिए यह इस प्रकार दिखाई देगा चयनित:

chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'highlighted': 'true'}); 
नहीं

यकीन है कि तुम क्यों एक नए टैब में popup.html दिखाना चाहते हैं, लेकिन मुझे अपने एक्सटेंशन को विकसित/डिबग करने के दौरान यह बहुत उपयोगी लगता है ... यह काफी दर्द है कि एक्सटेंशन पेज पर "आमतौर पर" पृष्ठभूमि पृष्ठ का केवल एक लिंक होता है।

कैसे एक नई विंडो में और हो सकता है एक कियोस्क मोड ;-)

+2

ध्यान दें कि 'चयनित' अब बहिष्कृत है। इसके बजाए 'हाइलाइट' का प्रयोग करें। – Brad

6

अब आप Event Pages उपयोग कर सकते हैं नए टैब में popup.html खोलने के लिए में खोलने के लिए पता करने के लिए जब एक्सटेंशन आइकन एक बनाने के बिना क्लिक किया जाता है प्यार करोगे default_popup पेज।

प्रकट:

"background": { 
    "scripts": ["background.js"], 
    "persistent": false 
} 

js:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'selected': true}); 
}); 
+3

यह प्रत्येक क्लिक पर नया टैब खुल जाएगा। यह जांचना बुद्धिमानी है कि एक्सटेंशन पॉपअप पहले से ही खुला है या नहीं, और यदि हां, तो बस इसे चुनें –

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