chrome.browserAction

ब्यौरा

ब्राउज़र ऐक्शन का इस्तेमाल करके, Google Chrome के मुख्य टूलबार में आइकॉन जोड़ें. यह टूलबार, पता बार की दाईं ओर होता है. ब्राउज़र ऐक्शन में आइकॉन के अलावा, टूलटिप, बैज, और पॉप-अप भी हो सकता है.

उपलब्धता

≤ MV2

नीचे दी गई इमेज में, पता बार की दाईं ओर मौजूद कई रंगों वाला स्क्वेयर, ब्राउज़र ऐक्शन का आइकॉन है. आइकॉन के नीचे एक पॉप-अप दिखता है.

अगर आपको ऐसा आइकॉन बनाना है जो हमेशा चालू न रहे, तो ब्राउज़र ऐक्शन के बजाय पेज ऐक्शन का इस्तेमाल करें.

मेनिफ़ेस्ट

अपनी ब्राउज़र ऐक्शन को एक्सटेंशन मेनिफ़ेस्ट में इस तरह रजिस्टर करें:

{
  "name": "My extension",
  ...
  "browser_action": {
    "default_icon": {                // optional
      "16": "images/icon16.png",     // optional
      "24": "images/icon24.png",     // optional
      "32": "images/icon32.png"      // optional
    },
    "default_title": "Google Mail",  // optional, shown in tooltip
    "default_popup": "popup.html"    // optional
  },
  ...
}

Chrome में इस्तेमाल करने के लिए, किसी भी साइज़ का आइकॉन दिया जा सकता है. Chrome, सबसे मिलता-जुलता आइकॉन चुनेगा और उसे 16-डाइप के स्पेस को भरने के लिए सही साइज़ में स्केल कर देगा. हालांकि, अगर सटीक साइज़ नहीं दिया गया है, तो साइज़ बदलने की वजह से आइकॉन की जानकारी कम हो सकती है या वह धुंधला दिख सकता है.

1.5x या 1.2x जैसे कम सामान्य स्केल फ़ैक्टर वाले डिवाइसों का इस्तेमाल ज़्यादा हो रहा है. इसलिए, आपको अपने आइकॉन के लिए कई साइज़ उपलब्ध कराने का सुझाव दिया जाता है. इससे यह भी पक्का होता है कि अगर आइकॉन के डिसप्ले साइज़ में कभी बदलाव होता है, तो आपको अलग-अलग आइकॉन उपलब्ध कराने के लिए कुछ और करने की ज़रूरत नहीं पड़ेगी!

डिफ़ॉल्ट आइकॉन को रजिस्टर करने के लिए, पुराना सिंटैक्स अब भी काम करता है:

{
  "name": "My extension",
  ...
  "browser_action": {
    ...
    "default_icon": "images/icon32.png"  // optional
    // equivalent to "default_icon": { "32": "images/icon32.png" }
  },
  ...
}

यूज़र इंटरफ़ेस (यूआई) के हिस्से

ब्राउज़र ऐक्शन में आइकॉन, टूलटिप, बैज, और पॉप-अप हो सकता है.

आइकॉन

Chrome में ब्राउज़र ऐक्शन आइकॉन की चौड़ाई और ऊंचाई 16 डीआईपी (डिवाइस-इंडिपेंडेंट पिक्सल) होती है. बड़े आइकॉन को फ़िट करने के लिए उनका साइज़ बदल दिया जाता है. हालांकि, बेहतर नतीजों के लिए, 16-डाइप स्क्वेयर आइकॉन का इस्तेमाल करें.

आइकॉन को दो तरीकों से सेट किया जा सकता है: स्टैटिक इमेज का इस्तेमाल करके या HTML5 कैनवस एलिमेंट का इस्तेमाल करके. आसान ऐप्लिकेशन के लिए, स्टैटिक इमेज का इस्तेमाल करना आसान होता है. हालांकि, कैनवस एलिमेंट का इस्तेमाल करके, ज़्यादा डाइनैमिक यूज़र इंटरफ़ेस (यूआई) बनाए जा सकते हैं. जैसे, स्मूद ऐनिमेशन.

स्टैटिक इमेज, WebKit के किसी भी फ़ॉर्मैट में हो सकती हैं. जैसे, BMP, GIF, ICO, JPEG या PNG. अनपैक किए गए एक्सटेंशन के लिए, इमेज PNG फ़ॉर्मैट में होनी चाहिए.

आइकॉन सेट करने के लिए, मेनिफ़ेस्ट में default_icon के default_icon फ़ील्ड का इस्तेमाल करें या browserAction.setIcon तरीके को कॉल करें.

जब स्क्रीन पिक्सल डेंसिटी (रेशियो size_in_pixel / size_in_dip) एक से अलग हो, तो आइकॉन को सही तरीके से दिखाने के लिए, आइकॉन को अलग-अलग साइज़ वाली इमेज के सेट के तौर पर दिखाया जा सकता है. दिखाने के लिए, सेट में से वह इमेज चुनी जाएगी जो 16 डीआईपी के पिक्सल साइज़ में सबसे अच्छी तरह से फ़िट हो. आइकॉन सेट में, किसी भी साइज़ का आइकॉन शामिल हो सकता है. Chrome, सबसे सही आइकॉन चुन लेगा.

टूलटिप

टूलटिप सेट करने के लिए, मेनिफ़ेस्ट में default_title के default_title फ़ील्ड का इस्तेमाल करें या browserAction.setTitle तरीका आज़माएं. default_title फ़ील्ड के लिए, स्थानीय भाषा के हिसाब से स्ट्रिंग दी जा सकती हैं. ज़्यादा जानकारी के लिए, अंतरराष्ट्रीय स्तर का पेज बनाने का तरीका देखें.

बैज

ब्राउज़र ऐक्शन में, बैज दिखाया जा सकता है. यह आइकॉन के ऊपर लेयर किया गया टेक्स्ट होता है. बैज की मदद से, ब्राउज़र ऐक्शन को आसानी से अपडेट किया जा सकता है, ताकि एक्सटेंशन की स्थिति के बारे में थोड़ी जानकारी दिख सके.

बैज में सीमित जगह होती है, इसलिए इसमें चार या उससे कम वर्ण होने चाहिए.

browserAction.setBadgeText और browserAction.setBadgeBackgroundColor का इस्तेमाल करके, बैज का टेक्स्ट और रंग सेट करें.

अगर किसी ब्राउज़र ऐक्शन में पॉप-अप है, तो उपयोगकर्ता जब एक्सटेंशन के आइकॉन पर क्लिक करता है, तब पॉप-अप दिखता है. पॉप-अप में आपका पसंदीदा एचटीएमएल कॉन्टेंट शामिल किया जा सकता है. साथ ही, कॉन्टेंट के हिसाब से इसका साइज़ अपने-आप तय हो जाता है. पॉप-अप का साइज़ 25x25 से छोटा और 800x600 से बड़ा नहीं होना चाहिए.

अपनी ब्राउज़र ऐक्शन में पॉप-अप जोड़ने के लिए, पॉप-अप के कॉन्टेंट के साथ एक एचटीएमएल फ़ाइल बनाएं. मेनिफ़ेस्ट में, default_popup के default_popup फ़ील्ड में HTML फ़ाइल की जानकारी दें या browserAction.setPopup तरीके को कॉल करें.

सलाह

विज़ुअल का सबसे अच्छा असर पाने के लिए, इन दिशा-निर्देशों का पालन करें:

  • ज़्यादातर पेजों पर काम करने वाली सुविधाओं के लिए, ब्राउज़र ऐक्शन का इस्तेमाल करें.
  • सिर्फ़ कुछ पेजों के लिए काम करने वाली सुविधाओं के लिए, ब्राउज़र ऐक्शन का इस्तेमाल न करें. इसके बजाय, page actions का इस्तेमाल करें.
  • बड़े और रंग-बिरंगे आइकॉन का इस्तेमाल करें, ताकि 16x16-डिप स्पेस का ज़्यादा से ज़्यादा फ़ायदा लिया जा सके. ब्राउज़र ऐक्शन आइकॉन, पेज ऐक्शन आइकॉन से थोड़े बड़े और गहरे रंग के होने चाहिए.
  • Google Chrome के मोनोक्रोम मेन्यू आइकॉन की नकल करें. यह तरीका, थीम के साथ अच्छी तरह से काम नहीं करता. इसके अलावा, एक्सटेंशन को थोड़ा अलग दिखना चाहिए.
  • अपने आइकॉन के किनारों को सॉफ़्ट बनाने के लिए, ऐल्फ़ा ट्रांसपेरेंसी का इस्तेमाल करें. कई लोग थीम का इस्तेमाल करते हैं. इसलिए, आपका आइकॉन अलग-अलग बैकग्राउंड रंगों पर अच्छा दिखना चाहिए.
  • अपने आइकॉन पर लगातार ऐनिमेशन चलाएं. यह बहुत परेशान करने वाला है.

उदाहरण

ब्राउज़र ऐक्शन का इस्तेमाल करने के आसान उदाहरण, examples/api/browserAction डायरेक्ट्री में देखे जा सकते हैं. अन्य उदाहरणों और सोर्स कोड देखने में मदद पाने के लिए, सैंपल देखें.

टाइप

TabDetails

Chrome 88 और उसके बाद के वर्शन

प्रॉपर्टी

  • tabId

    number ज़रूरी नहीं

    उस टैब का आईडी जिसकी स्थिति के बारे में क्वेरी करनी है. अगर कोई टैब नहीं चुना गया है, तो टैब के हिसाब से नहीं, बल्कि सभी टैब के लिए लागू होने वाली स्थिति दिखती है.

तरीके

disable()

वादा करना
chrome.browserAction.disable(
  tabId?: number,
  callback?: function,
)

किसी टैब के लिए ब्राउज़र ऐक्शन बंद करता है.

पैरामीटर

  • tabId

    number ज़रूरी नहीं

    उस टैब का आईडी जिसके लिए ब्राउज़र ऐक्शन में बदलाव करना है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 67 और उसके बाद के वर्शन

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

enable()

वादा करना
chrome.browserAction.enable(
  tabId?: number,
  callback?: function,
)

किसी टैब के लिए ब्राउज़र ऐक्शन चालू करता है. डिफ़ॉल्ट रूप से चालू होता है.

पैरामीटर

  • tabId

    number ज़रूरी नहीं

    उस टैब का आईडी जिसके लिए ब्राउज़र ऐक्शन में बदलाव करना है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 67 और उसके बाद के वर्शन

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getBadgeBackgroundColor()

वादा करना
chrome.browserAction.getBadgeBackgroundColor(
  details: TabDetails,
  callback?: function,
)

ब्राउज़र ऐक्शन के बैकग्राउंड का रंग दिखाता है.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर इस तरह दिखता है:

    (result: ColorArray) => void

रिटर्न

  • Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getBadgeText()

वादा करना
chrome.browserAction.getBadgeText(
  details: TabDetails,
  callback?: function,
)

ब्राउज़र ऐक्शन का बैज टेक्स्ट पाता है. अगर कोई टैब नहीं चुना गया है, तो टैब के हिसाब से नहीं दिखाया जाने वाला बैज टेक्स्ट दिखता है.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर इस तरह दिखता है:

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getPopup()

वादा करना
chrome.browserAction.getPopup(
  details: TabDetails,
  callback?: function,
)

इस ब्राउज़र ऐक्शन के लिए, पॉप-अप के तौर पर सेट किया गया एचटीएमएल दस्तावेज़ दिखाता है.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर इस तरह दिखता है:

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

getTitle()

वादा करना
chrome.browserAction.getTitle(
  details: TabDetails,
  callback?: function,
)

ब्राउज़र ऐक्शन का टाइटल पाता है.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर इस तरह दिखता है:

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

setBadgeBackgroundColor()

वादा करना
chrome.browserAction.setBadgeBackgroundColor(
  details: object,
  callback?: function,
)

बैज के लिए बैकग्राउंड का रंग सेट करता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      स्ट्रिंग | ColorArray

      0 से 255 की रेंज में चार पूर्णांकों का ऐरे, जो बैज का आरजीबी रंग बनाता है. यह सीएसएस हेक्स कलर वैल्यू वाली स्ट्रिंग भी हो सकती है. उदाहरण के लिए, #FF0000 या #F00 (लाल). रंगों को पूरी तरह से अपारदर्शी के तौर पर रेंडर करता है.

    • tabId

      number ज़रूरी नहीं

      यह बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह अपने-आप रीसेट हो जाता है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 67 और उसके बाद के वर्शन

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

setBadgeText()

वादा करना
chrome.browserAction.setBadgeText(
  details: object,
  callback?: function,
)

ब्राउज़र ऐक्शन के लिए बैज टेक्स्ट सेट करता है. बैज, आइकॉन के ऊपर दिखता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      number ज़रूरी नहीं

      यह बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह अपने-आप रीसेट हो जाता है.

    • टेक्स्ट

      स्ट्रिंग ज़रूरी नहीं है

      इसमें ज़्यादा से ज़्यादा चार वर्ण डाले जा सकते हैं. अगर कोई खाली स्ट्रिंग ('') दी जाती है, तो बैज का टेक्स्ट हट जाता है. अगर tabId तय किया गया है और text शून्य है, तो तय किए गए टैब का टेक्स्ट हट जाता है और डिफ़ॉल्ट रूप से ग्लोबल बैज का टेक्स्ट दिखता है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 67 और उसके बाद के वर्शन

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

setIcon()

वादा करना
chrome.browserAction.setIcon(
  details: object,
  callback?: function,
)

ब्राउज़र ऐक्शन के लिए आइकॉन सेट करता है. आइकॉन को इमेज फ़ाइल के पाथ, कैनवस एलिमेंट के पिक्सल डेटा या इनमें से किसी एक की डिक्शनरी के तौर पर सेट किया जा सकता है. path या imageData प्रॉपर्टी में से किसी एक की जानकारी देना ज़रूरी है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • imageData

      ImageData | ऑब्जेक्ट ज़रूरी नहीं

      सेट किए जाने वाले आइकॉन को दिखाने वाला ImageData ऑब्जेक्ट या डिक्शनरी {size -> ImageData}. अगर आइकॉन को डिक्शनरी के तौर पर तय किया गया है, तो स्क्रीन की पिक्सल डेंसिटी के हिसाब से इमेज चुनी जाती है. अगर एक स्क्रीन स्पेस यूनिट में फ़िट होने वाली इमेज के पिक्सल की संख्या scale है, तो scale * n साइज़ वाली इमेज चुनी जाती है. यहां n, यूज़र इंटरफ़ेस (यूआई) में आइकॉन का साइज़ है. कम से कम एक इमेज की जानकारी देना ज़रूरी है. ध्यान दें कि 'details.imageData = foo', 'details.imageData = {'16': foo}' के बराबर है

    • पाथ

      string | object ज़रूरी नहीं

      सेट किए जाने वाले आइकॉन की ओर ले जाने वाला, मिलता-जुलता इमेज पाथ या डिक्शनरी {size -> relative image path}. अगर आइकॉन को डिक्शनरी के तौर पर तय किया गया है, तो स्क्रीन की पिक्सल डेंसिटी के हिसाब से इमेज चुनी जाती है. अगर एक स्क्रीन स्पेस यूनिट में फ़िट होने वाली इमेज के पिक्सल की संख्या scale है, तो scale * n साइज़ वाली इमेज चुनी जाती है. यहां n, यूज़र इंटरफ़ेस (यूआई) में आइकॉन का साइज़ है. कम से कम एक इमेज की जानकारी देना ज़रूरी है. ध्यान दें कि 'details.path = foo' और 'details.path = {'16': foo}' एक ही हैं

    • tabId

      number ज़रूरी नहीं

      यह बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह अपने-आप रीसेट हो जाता है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 116 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

setPopup()

वादा करना
chrome.browserAction.setPopup(
  details: object,
  callback?: function,
)

यह सेटिंग, HTML दस्तावेज़ को पॉप-अप के तौर पर खोलने के लिए सेट करती है. ऐसा तब होता है, जब उपयोगकर्ता ब्राउज़र ऐक्शन आइकॉन पर क्लिक करता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • पॉप-अप

      स्ट्रिंग

      पॉप-अप में दिखाने के लिए, एचटीएमएल फ़ाइल का रिलेटिव पाथ. अगर इसे खाली स्ट्रिंग ('') पर सेट किया जाता है, तो कोई पॉप-अप नहीं दिखता.

    • tabId

      number ज़रूरी नहीं

      यह बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह अपने-आप रीसेट हो जाता है.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 67 और उसके बाद के वर्शन

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

setTitle()

वादा करना
chrome.browserAction.setTitle(
  details: object,
  callback?: function,
)

ब्राउज़र ऐक्शन का टाइटल सेट करता है. यह टाइटल, टूलटिप में दिखता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      number ज़रूरी नहीं

      यह बदलाव सिर्फ़ तब लागू होता है, जब कोई टैब चुना जाता है. टैब बंद होने पर, यह अपने-आप रीसेट हो जाता है.

    • title

      स्ट्रिंग

      वह स्ट्रिंग जो ब्राउज़र ऐक्शन पर कर्सर घुमाने पर दिखनी चाहिए.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    Chrome 67 और उसके बाद के वर्शन

    callback पैरामीटर इस तरह दिखता है:

    () => void

रिटर्न

  • Promise<void>

    Chrome 88 और उसके बाद के वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और उसके बाद के वर्शन के साथ काम करते हैं. अन्य प्लैटफ़ॉर्म के लिए, कॉलबैक का इस्तेमाल करना ज़रूरी है.

इवेंट

onClicked

chrome.browserAction.onClicked.addListener(
  callback: function,
)

ब्राउज़र ऐक्शन आइकॉन पर क्लिक करने पर ट्रिगर होता है. अगर ब्राउज़र ऐक्शन में पॉप-अप है, तो यह ट्रिगर नहीं होता.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर इस तरह दिखता है:

    (tab: tabs.Tab) => void