2011-06-16 15 views
38

मैं क्रोम एक्सटेंशन लिख रहा हूं, मुझे अपने कोड में अपना एक्सटेंशन आईडी प्राप्त करने की आवश्यकता है, इसलिए मुझे इसे हर बार मैन्युअल रूप से बदलने की आवश्यकता नहीं है। मैं यह कैसे कर सकता हूँ?जावास्क्रिप्ट से अपना एक्सटेंशन आईडी कैसे प्राप्त करें?

+0

मैं एक बार इसके इंस्टॉल हो जाने पर विश्वास नहीं करते एक्सटेंशन की आईडी परिवर्तन? देव प्रयोजनों के लिए इसे "अनपॅक" भी इंस्टॉल करते समय, यह वही आईडी रखता है जब तक कि आप अनइंस्टॉल और पुनः इंस्टॉल नहीं करते, नहीं? – WesleyJohnson

+0

जब मैं इसे विकसित करता हूं, मुझे आईडी 1 मिल गया, जब मैं इसे प्रकाशित करता हूं, मुझे आईडी 2 मिल गया, वे अलग हैं .. – wong2

+2

आपको आईडी प्राप्त करने की आवश्यकता क्यों है? –

उत्तर

61

आप (बिना किसी अतिरिक्त अनुमति की आवश्यकता नहीं) इस तरह प्राप्त कर सकते हैं दो अलग अलग तरीकों:

  1. क्रम एपीआई का उपयोग कर: var myid = chrome.runtime.id;

  2. i18n एपीआई का उपयोग कर: var myid = chrome.i18n.getMessage("@@extension_id");

लेकिन आप खोलने पृष्ठों के लिए इसकी आवश्यकता नहीं के रूप में chrome.tabs.create() (और कुछ अन्य) संबंधित पथ समझते हैं।

तो अपने विस्तार फ़ोल्डर से index.html को खोलने के लिए आप बस का उपयोग करना चाहिए:

chrome.tabs.create({url: "index.html"}); 
+0

आपने' chrome.i18n.getMessage ("@@ extension_id") के बारे में सीखा; ~?! :) –

+1

@ जॉन्स देखें http://code.google.com/chrome/extensions/dev/i18n.html#overview- पूर्वनिर्धारित – serg

+2

ओह धन्यवाद! मुझे लगता है कि मुझे आरटीएफएम चाहिए !! :) –

9

आप स्थानीयकरण के साथ सामान कर रहे हैं, यह विस्तार यांत्रिकी की तरह अपने एक्सटेंशन आईडी तक पहुँचने के लिए कुछ placeholders की पेशकश दिखता है:

आप बस अपने विस्तार के लिए स्थानीय फ़ाइलों के लिए URL तक पहुंचने की कोशिश कर रहे हैं, तो आप कर सकते हैं बस chrome.extension.getURL("some file name");

यदि आपके पास वास्तव में एक्सटेंशन की आईडी जानने की आवश्यकता है, तो मुझे यकीन नहीं है कि एक्सटेंशन के भीतर से इसे प्राप्त करने का एक सीधा तरीका है। मेरे सिर के शीर्ष से मेरे पास आने वाले दो तरीके chrome.extension.getURL("some file name") का उपयोग कर रहे हैं और उसके बाद उस यूआरएल से एक्सटेंशन आईडी को पार्स कर रहे हैं - या chrome.management.getAll() का उपयोग करके और सभी इंस्टॉल किए गए एक्सटेंशन के माध्यम से लूपिंग जब तक आप name पर किसी मिलान का उपयोग करके नहीं पाते हैं और फिर एक्सेसिंग करते हैं id:

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