2010-07-06 9 views
57

मैं क्रोम के लिए एक्सटेंशन कैसे बना सकता हूं जो टूलबार में आइकन जोड़ता है, और जब आप इसे क्लिक करते हैं, तो यह कुछ स्थानीय वेब पेज के साथ एक नया टैब खोलता है (उदाहरण के लिए : f.html)?Google क्रोम एक्सटेंशन - टूलबार आइकन पर क्लिक करते समय नया टैब खोलें

मैं this question देखा था, लेकिन यह वास्तव में मैं क्या मैनिफ़ेस्ट फ़ाइल में जोड़ना चाहिए ...

धन्यवाद बताते नहीं है।

उत्तर

74

यह नए क्रोम ऐप्स के लिए सच नहीं है।

नई क्रोम manifest_version होने क्षुधा:


chrome.browserAction.onClicked.addListener(function(activeTab) 
{ 
    var newURL = "http://www.youtube.com/watch?v=oHg5SJYRHA0"; 
    chrome.tabs.create({ url: newURL }); 
}); 

+0

यह बेहतर, अधिक वर्तमान और अधिक सटीक जवाब है, FYI करें –

+5

है जो फ़ाइल मैं इस कोड डालने की आवश्यकता है .. यह मुख्य है। जेएस या popup.html ??? –

+2

@DehanWjiesekara इसे उदा। background.js और "पृष्ठभूमि" है: {"स्क्रिप्ट": ["background.js"]} 'आपके मैनिफेस्ट में। – simonp

49

खैर, extensions docs में, यह manifest में कहा गया है, आप अपनी अनुमति के रूप में "टैब" शामिल करने की आवश्यकता होगी।

मैनिफ़ेस्ट फ़ाइल: उसी तरह वे हैलो दुनिया आवेदन समझाने

{ 
    "name": "My Extension", 
    "version": "1.0", 
    "description": "Opens up a local webpage", 
    "icons": { "128": "icon_128.png" }, 
    "background_page": "bg.html", 
    "browser_action": { 
    "default_title": "", 
    "default_icon": "icon_19.png" 
    }, 
    "permissions": [ 
    "tabs" 
    ], 
} 

background page के भीतर, आप ब्राउज़र कार्य पर माउस क्लिक करें घटना को सुनने के।

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({'url': chrome.extension.getURL('f.html')}, function(tab) { 
    // Tab opened. 
    }); 
}); 

जैसा कि आपने ऊपर देखा है, आप देखेंगे कि मैंने दूसरे पोस्ट में आपके द्वारा देखी गई प्रश्न का उपयोग किया था। नोट, यह परीक्षण नहीं किया गया है, लेकिन मुझे विश्वास है कि यह काम करना चाहिए।

+1

सावधान रहें कि "टैब" अनुमतियां जोड़ने से उपयोगकर्ता को इंस्टॉल करने के लिए "आपके ब्राउज़िंग इतिहास को अनुमति दें" चेतावनी दिखाई देगी। दस्तावेज़ों का कहना है कि अधिकांश 'chrome.tabs' को इस अनुमति की आवश्यकता नहीं है https://developer.chrome.com/extensions/tabs क्योंकि मैंने इस पर अधिक ध्यान नहीं दिया है, मैंने हाल ही में https से सैकड़ों उपयोगकर्ताओं को खो दिया है://chrome.google.com/webstore/detail/inbox-by-gmail-checker/mpjmeeikbbgccbjkbfabocnjcaejdpmj – Joe

4

chrome.tabs.create "टैब" की अनुमति की जरूरत: 2 टैब की आवश्यकता के रूप में खोला।

बस किसी भी अनुमति के बिना विस्तार में window.open का उपयोग कर। और कोड छोटा है। मैं इस समाधान का सुझाव देता हूं।

window.open(url,'_blank'); 
+0

मैंने अधिसूचना बटन के क्लिक पर नया टैब खोलने के लिए अपने एक्सटेंशन में एक ही कोड का उपयोग किया था। लेकिन अब 3 महीने बाद मुझे उस बटन पर क्लिक करते समय aw..snap पेज त्रुटि मिल रही है। क्या आपको कोई विचार है कि ऐसा क्यों हुआ? पीएस: अगर मैं एक और यूआरएल का उपयोग करता हूं तो यह ठीक काम करता है: www.google.com लेकिन यह मेरी साइट के साथ काम नहीं कर रहा है। – Sona

+0

यह मेरे लिए काम करता प्रतीत होता है (हालांकि मैंने केवल स्थानीय अनबंडल एक्सटेंशन में कोशिश की है जिसे मैं काम कर रहा हूं)। – simonp

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