browser.action

ब्यौरा

Google Chrome के टूलबार में एक्सटेंशन के आइकॉन को कंट्रोल करने के लिए, chrome.action एपीआई का इस्तेमाल करें.

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

उपलब्धता

Chrome 88+ browser.* Chrome 148 से MV3+

मेनिफ़ेस्ट

इस एपीआई का इस्तेमाल करने के लिए, मेनिफ़ेस्ट में इन कुंजियों का एलान करना ज़रूरी है.

"action"

browser.action एपीआई का इस्तेमाल करने के लिए, 3 का "manifest_version" तय करें और अपनी मेनिफ़ेस्ट फ़ाइल में "action" कुंजी शामिल करें.

{
  "name": "Action Extension",
  ...
  "action": {
    "default_icon": {              // optional
      "16": "images/icon16.png",   // optional
      "24": "images/icon24.png",   // optional
      "32": "images/icon32.png"    // optional
    },
    "default_title": "Click Me",   // optional, shown in tooltip
    "default_popup": "popup.html"  // optional
  },
  ...
}

"action" कुंजी (इसके चाइल्ड के साथ) ज़रूरी नहीं है. अगर इसे शामिल नहीं किया जाता है, तो भी आपका एक्सटेंशन टूलबार में दिखता है, ताकि एक्सटेंशन के मेन्यू को ऐक्सेस किया जा सके. इसलिए, हमारा सुझाव है कि आप हमेशा कम से कम "action" और "default_icon" कुंजियां शामिल करें.

कॉन्सेप्ट और इस्तेमाल

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

आइकॉन

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

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

अब 1.5x या 1.2x जैसे कम इस्तेमाल होने वाले स्केल फ़ैक्टर वाले डिवाइसों का इस्तेमाल ज़्यादा होने लगा है. इसलिए, हमारा सुझाव है कि आप अपने आइकॉन के लिए कई साइज़ उपलब्ध कराएं. इससे आपके एक्सटेंशन को आइकॉन के डिसप्ले साइज़ में होने वाले संभावित बदलावों से भी सुरक्षित रखा जा सकता है. हालांकि, अगर सिर्फ़ एक साइज़ दिया जा रहा है, तो "default_icon" कुंजी को डिक्शनरी के बजाय, एक आइकॉन के पाथ वाली स्ट्रिंग पर भी सेट किया जा सकता है.

एक्सटेंशन के आइकॉन को प्रोग्राम के हिसाब से सेट करने के लिए, action.setIcon() को भी कॉल किया जा सकता है. इसके लिए, आपको इमेज का कोई दूसरा पाथ तय करना होगा या एचटीएमएल कैनवस एलिमेंट का इस्तेमाल करके, डाइनैमिक तौर पर जनरेट किया गया आइकॉन उपलब्ध कराना होगा. इसके अलावा, अगर एक्सटेंशन सर्विस वर्कर से सेट किया जा रहा है, तो ऑफ़स्क्रीन कैनवस एपीआई का इस्तेमाल करना होगा.

const canvas = new OffscreenCanvas(16, 16);
const context = canvas.getContext('2d');
context.clearRect(0, 0, 16, 16);
context.fillStyle = '#00FF00';  // Green
context.fillRect(0, 0, 16, 16);
const imageData = context.getImageData(0, 0, 16, 16);
browser.action.setIcon({imageData: imageData}, () => { /* ... */ });

पैक किए गए एक्सटेंशन (.crx फ़ाइल से इंस्टॉल किए गए) के लिए, इमेज ज़्यादातर उन फ़ॉर्मैट में हो सकती हैं जिन्हें Blink रेंडरिंग इंजन दिखा सकता है. इनमें PNG, JPEG, BMP, ICO, और अन्य फ़ॉर्मैट शामिल हैं. एसवीजी का इस्तेमाल नहीं किया जा सकता. अनपैक किए गए एक्सटेंशन में PNG इमेज का इस्तेमाल करना ज़रूरी है.

टूलटिप (टाइटल)

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

डिफ़ॉल्ट टूलटिप को manifest.json में "action" कुंजी के "default_title" फ़ील्ड का इस्तेमाल करके सेट किया जाता है. इसे प्रोग्राम के हिसाब से भी सेट किया जा सकता है. इसके लिए, action.setTitle() को कॉल करें.

बैज

कार्रवाइयां, आइकॉन के ऊपर टेक्स्ट की लेयर के तौर पर "बैज" दिखा सकती हैं. हालांकि, ऐसा करना ज़रूरी नहीं है. इससे आपको कार्रवाई को अपडेट करने की सुविधा मिलती है, ताकि एक्सटेंशन की स्थिति के बारे में थोड़ी जानकारी दिखाई जा सके. जैसे, काउंटर. बैज में टेक्स्ट कॉम्पोनेंट और बैकग्राउंड का रंग होता है. बैज के लिए जगह सीमित होती है. इसलिए, हमारा सुझाव है कि बैज के टेक्स्ट में चार या इससे कम वर्णों का इस्तेमाल करें.

बैज बनाने के लिए, action.setBadgeBackgroundColor() और action.setBadgeText() को कॉल करके, इसे प्रोग्राम के हिसाब से सेट करें. मेनिफ़ेस्ट में बैज की कोई डिफ़ॉल्ट सेटिंग नहीं है. बैज के रंग की वैल्यू, 0 से 255 के बीच के चार पूर्णांकों का कलेक्शन हो सकती है. इससे बैज का आरजीबीए रंग बनता है. इसके अलावा, यह सीएसएस कलर वैल्यू वाली स्ट्रिंग भी हो सकती है.

browser.action.setBadgeBackgroundColor(
  {color: [0, 255, 0, 0]},  // Green
  () => { /* ... */ },
);

browser.action.setBadgeBackgroundColor(
  {color: '#00FF00'},  // Also green
  () => { /* ... */ },
);

browser.action.setBadgeBackgroundColor(
  {color: 'green'},  // Also, also green
  () => { /* ... */ },
);

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

पॉप-अप को शुरुआत में, manifest.json फ़ाइल में "action" कुंजी में मौजूद "default_popup" प्रॉपर्टी से सेट किया जाता है. अगर यह प्रॉपर्टी मौजूद है, तो इसे एक्सटेंशन डायरेक्ट्री में मौजूद रिलेटिव पाथ पर ले जाना चाहिए. action.setPopup() तरीके का इस्तेमाल करके, इसे डाइनैमिक तौर पर अपडेट किया जा सकता है, ताकि यह किसी दूसरे रिलेटिव पाथ पर ले जाए.

उपयोग के उदाहरण

हर टैब की स्थिति

हर टैब के लिए, एक्सटेंशन की कार्रवाइयों की स्थितियां अलग-अलग हो सकती हैं. किसी टैब के लिए वैल्यू सेट करने के लिए, action एपीआई के सेटिंग मेथड में tabId प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए, किसी खास टैब के लिए बैज का टेक्स्ट सेट करने के लिए, कुछ ऐसा करें:

function getTabId() { /* ... */}
function getTabBadge() { /* ... */}

browser.action.setBadgeText(
  {
    text: getTabBadge(tabId),
    tabId: getTabId(),
  },
  () => { ... }
);

अगर tabId प्रॉपर्टी को शामिल नहीं किया जाता है, तो सेटिंग को ग्लोबल सेटिंग माना जाता है. ग्लोबल सेटिंग के मुकाबले, टैब के हिसाब से की गई सेटिंग को प्राथमिकता दी जाती है.

चालू होने की स्थिति

डिफ़ॉल्ट रूप से, टूलबार में मौजूद कार्रवाइयां हर टैब पर चालू होती हैं. इसका मतलब है कि उन पर क्लिक किया जा सकता है. इस डिफ़ॉल्ट सेटिंग को बदला जा सकता है. इसके लिए, मेनिफ़ेस्ट की action कुंजी में default_state प्रॉपर्टी सेट करें. अगर default_state को "disabled" पर सेट किया जाता है, तो कार्रवाई डिफ़ॉल्ट रूप से बंद हो जाती है. साथ ही, क्लिक करने लायक बनाने के लिए, इसे प्रोग्राम के हिसाब से चालू करना होगा. अगर default_state को "enabled" (डिफ़ॉल्ट) पर सेट किया जाता है, तो कार्रवाई डिफ़ॉल्ट रूप से चालू रहती है और उस पर क्लिक किया जा सकता है.

action.enable() और action.disable() तरीकों का इस्तेमाल करके, प्रोग्राम के हिसाब से स्थिति को कंट्रोल किया जा सकता है. इससे सिर्फ़ यह तय होता है कि आपके एक्सटेंशन पर पॉप-अप (अगर कोई है) या action.onClicked इवेंट भेजा जाए या नहीं. इससे टूलबार में मौजूद कार्रवाई पर कोई असर नहीं पड़ता.

उदाहरण

यहां कुछ उदाहरण दिए गए हैं, जिनसे पता चलता है कि एक्सटेंशन में कार्रवाइयों का इस्तेमाल आम तौर पर कैसे किया जाता है. इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से Action API का उदाहरण इंस्टॉल करें.

पॉप-अप दिखाएं

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

// manifest.json
{
  "name": "Action popup demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to view a popup",
    "default_popup": "popup.html"
  }
}
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
  <style>
    html {
      min-height: 5em;
      min-width: 10em;
      background: salmon;
    }
  </style>
</head>
<body>
  <p>Hello, world!</p>
</body>
</html>

क्लिक करने पर कॉन्टेंट स्क्रिप्ट इंजेक्ट करना

एक्सटेंशन के लिए एक सामान्य पैटर्न यह है कि वे एक्सटेंशन की कार्रवाई का इस्तेमाल करके, अपनी मुख्य सुविधा को दिखाते हैं. नीचे दिए गए उदाहरण में इस पैटर्न को दिखाया गया है. जब उपयोगकर्ता इस कार्रवाई पर क्लिक करता है, तो एक्सटेंशन मौजूदा पेज में कॉन्टेंट स्क्रिप्ट इंजेक्ट करता है. इसके बाद, कॉन्टेंट स्क्रिप्ट एक सूचना दिखाती है. इससे यह पुष्टि होती है कि सब कुछ उम्मीद के मुताबिक काम कर रहा है.

// manifest.json
{
  "name": "Action script injection demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to show an alert"
  },
  "permissions": ["activeTab", "scripting"],
  "background": {
    "service_worker": "background.js"
  }
}
// background.js
browser.action.onClicked.addListener((tab) => {
  browser.scripting.executeScript({
    target: {tabId: tab.id},
    files: ['content.js']
  });
});
// content.js
alert('Hello, world!');

declarativeContent की मदद से कार्रवाइयों को एम्युलेट करना

इस उदाहरण से पता चलता है कि किसी एक्सटेंशन का बैकग्राउंड लॉजिक, (a) डिफ़ॉल्ट रूप से किसी कार्रवाई को कैसे बंद कर सकता है और (b) चुनिंदा साइटों पर कार्रवाई को चालू करने के लिए, declarativeContent का इस्तेमाल कैसे कर सकता है.

// service-worker.js

// Wrap in an onInstalled callback to avoid unnecessary work
// every time the service worker is run
browser.runtime.onInstalled.addListener(() => {
  // Page actions are disabled by default and enabled on select tabs
  browser.action.disable();

  // Clear all rules to ensure only our expected rules are set
  browser.declarativeContent.onPageChanged.removeRules(undefined, () => {
    // Declare a rule to enable the action on example.com pages
    let exampleRule = {
      conditions: [
        new browser.declarativeContent.PageStateMatcher({
          pageUrl: {hostSuffix: '.example.com'},
        })
      ],
      actions: [new browser.declarativeContent.ShowAction()],
    };

    // Finally, apply our new array of rules
    let rules = [exampleRule];
    browser.declarativeContent.onPageChanged.addRules(rules);
  });
});

टाइप

OpenPopupOptions

Chrome 99+ browser.* Chrome 148 से

प्रॉपर्टी

  • windowId

    number ज़रूरी नहीं

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

TabDetails

प्रॉपर्टी

  • tabId

    number ज़रूरी नहीं

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

UserSettings

Chrome 91+ Chrome 148 से browser.*

एक्सटेंशन की कार्रवाई से जुड़ी, उपयोगकर्ता की तय की गई सेटिंग का कलेक्शन.

प्रॉपर्टी

  • isOnToolbar

    बूलियन

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

UserSettingsChange

Chrome 130+ browser.* Chrome 148 से

प्रॉपर्टी

  • isOnToolbar

    बूलियन ज़रूरी नहीं

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

तरीके

disable()

browser.action.disable(
  tabId?: number,
)
: Promise<void>

किसी टैब के लिए कार्रवाई को बंद करता है.

पैरामीटर

  • tabId

    number ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

enable()

browser.action.enable(
  tabId?: number,
)
: Promise<void>

किसी टैब के लिए कार्रवाई चालू करता है. डिफ़ॉल्ट रूप से, कार्रवाइयां चालू होती हैं.

पैरामीटर

  • tabId

    number ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

getBadgeBackgroundColor()

browser.action.getBadgeBackgroundColor(
  details: TabDetails,
)
: Promise<extensionTypes.ColorArray>

इससे कार्रवाई के बैकग्राउंड का रंग पता चलता है.

पैरामीटर

रिटर्न

getBadgeText()

browser.action.getBadgeText(
  details: TabDetails,
)
: Promise<string>

कार्रवाई के बैज का टेक्स्ट दिखाता है. अगर कोई टैब तय नहीं किया गया है, तो टैब के हिसाब से बैज का टेक्स्ट नहीं दिखता. अगर displayActionCountAsBadgeText चालू है, तो प्लेसहोल्डर टेक्स्ट तब तक दिखेगा, जब तक declarativeNetRequestFeedback की अनुमति मौजूद न हो या टैब के हिसाब से बैज टेक्स्ट न दिया गया हो.

पैरामीटर

रिटर्न

  • Promise<string>

getBadgeTextColor()

Chrome 110+ browser.* Chrome 148 से
browser.action.getBadgeTextColor(
  details: TabDetails,
)
: Promise<extensionTypes.ColorArray>

इससे कार्रवाई के टेक्स्ट का रंग पता चलता है.

पैरामीटर

रिटर्न

getPopup()

browser.action.getPopup(
  details: TabDetails,
)
: Promise<string>

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

पैरामीटर

रिटर्न

  • Promise<string>

getTitle()

browser.action.getTitle(
  details: TabDetails,
)
: Promise<string>

इससे कार्रवाई का टाइटल मिलता है.

पैरामीटर

रिटर्न

  • Promise<string>

getUserSettings()

Chrome 91+ Chrome 148 से browser.*
browser.action.getUserSettings(): Promise<UserSettings>

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

रिटर्न

isEnabled()

Chrome 110+ browser.* Chrome 148 से
browser.action.isEnabled(
  tabId?: number,
)
: Promise<boolean>

इससे पता चलता है कि किसी टैब के लिए एक्सटेंशन की कार्रवाई चालू है या नहीं. अगर कोई tabId नहीं दिया गया है, तो यह सभी टैब के लिए चालू है. सिर्फ़ declarativeContent का इस्तेमाल करके चालू की गई कार्रवाइयां, हमेशा गलत नतीजे दिखाती हैं.

पैरामीटर

  • tabId

    number ज़रूरी नहीं

    उस टैब का आईडी जिसके लिए आपको यह देखना है कि वह चालू है या नहीं.

रिटर्न

  • Promise<boolean>

openPopup()

Chrome 127 और इसके बाद के वर्शन Chrome 148 से browser.*
browser.action.openPopup(
  options?: OpenPopupOptions,
)
: Promise<void>

इससे एक्सटेंशन का पॉप-अप खुलता है. Chrome 118 और Chrome 126 के बीच, यह सुविधा सिर्फ़ नीति के तहत इंस्टॉल किए गए एक्सटेंशन के लिए उपलब्ध है.

पैरामीटर

  • विकल्प

    OpenPopupOptions ज़रूरी नहीं

    पॉप-अप खोलने के विकल्प तय करता है.

रिटर्न

  • वादा<शून्य>

setBadgeBackgroundColor()

browser.action.setBadgeBackgroundColor(
  details: object,
)
: Promise<void>

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      string | ColorArray

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

    • tabId

      number ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

setBadgeText()

browser.action.setBadgeText(
  details: object,
)
: Promise<void>

इससे कार्रवाई के लिए बैज टेक्स्ट सेट होता है. बैज, आइकॉन के ऊपर दिखता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      number ज़रूरी नहीं

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

    • टेक्स्ट

      string ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

setBadgeTextColor()

Chrome 110+ browser.* Chrome 148 से
browser.action.setBadgeTextColor(
  details: object,
)
: Promise<void>

इससे बैज के टेक्स्ट का रंग सेट किया जाता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      string | ColorArray

      [0,255] की रेंज में चार पूर्णांकों का कलेक्शन, जो बैज का आरजीबीए रंग बनाते हैं. उदाहरण के लिए, अपारदर्शी लाल रंग के लिए [255, 0, 0, 255] है. यह सीएसएस वैल्यू वाली स्ट्रिंग भी हो सकती है. इसमें ओपेक रेड #FF0000 या #F00 होता है. इस वैल्यू को सेट न करने पर, अपने-आप एक ऐसा रंग चुन लिया जाएगा जो बैज के बैकग्राउंड के रंग से अलग होगा, ताकि टेक्स्ट दिख सके. 0 के बराबर ऐल्फ़ा वैल्यू वाले रंग सेट नहीं किए जाएंगे. साथ ही, गड़बड़ी का मैसेज दिखेगा.

    • tabId

      number ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

setIcon()

browser.action.setIcon(
  details: object,
)
: Promise<void>

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • imageData

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

      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 ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

    Chrome 96+ Chrome 148 से browser.*

setPopup()

browser.action.setPopup(
  details: object,
)
: Promise<void>

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • पॉप-अप

      स्ट्रिंग

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

    • tabId

      number ज़रूरी नहीं

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

रिटर्न

  • वादा<शून्य>

setTitle()

browser.action.setTitle(
  details: object,
)
: Promise<void>

इससे कार्रवाई का टाइटल सेट होता है. यह टूलटिप में दिखता है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      number ज़रूरी नहीं

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

    • title

      स्ट्रिंग

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

रिटर्न

  • वादा<शून्य>

इवेंट

onClicked

browser.action.onClicked.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (tab: tabs.Tab) => void

onUserSettingsChanged

Chrome 130+ browser.* Chrome 148 से
browser.action.onUserSettingsChanged.addListener(
  callback: function,
)

यह इवेंट तब ट्रिगर होता है, जब उपयोगकर्ता किसी एक्सटेंशन की कार्रवाई से जुड़ी सेटिंग में बदलाव करता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (change: UserSettingsChange) => void