chrome.action

ब्यौरा

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

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

उपलब्धता

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

मेनिफ़ेस्ट

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

"action"

chrome.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);
chrome.action.setIcon({imageData: imageData}, () => { /* ... */ });

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

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

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

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

बैज

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

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

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

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

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

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

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

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

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

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

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

chrome.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
chrome.action.onClicked.addListener((tab) => {
  chrome.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
chrome.runtime.onInstalled.addListener(() => {
  // Page actions are disabled by default and enabled on select tabs
  chrome.action.disable();

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

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

टाइप

OpenPopupOptions

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

प्रॉपर्टी

  • windowId

    number ज़रूरी नहीं

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

TabDetails

प्रॉपर्टी

  • tabId

    number ज़रूरी नहीं

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

UserSettings

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

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

प्रॉपर्टी

  • isOnToolbar

    बूलियन

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

UserSettingsChange

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

प्रॉपर्टी

  • isOnToolbar

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

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

तरीके

disable()

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

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

पैरामीटर

  • tabId

    number ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

enable()

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

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

पैरामीटर

  • tabId

    number ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

getBadgeBackgroundColor()

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

कार्रवाई के बैकग्राउंड का रंग दिखाता है.

पैरामीटर

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

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

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

    (result: ColorArray) => void

रिटर्न

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

getBadgeText()

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

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

पैरामीटर

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

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

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

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

getBadgeTextColor()

Promise Chrome 110 और उसके बाद के वर्शन के लिए
chrome.action.getBadgeTextColor(
  details: TabDetails,
  callback?: function,
)

कार्रवाई के टेक्स्ट का रंग दिखाता है.

पैरामीटर

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

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

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

    (result: ColorArray) => void

रिटर्न

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

getPopup()

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

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

पैरामीटर

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

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

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

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

getTitle()

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

कार्रवाई का टाइटल दिखाता है.

पैरामीटर

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

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

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

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

getUserSettings()

Promise Chrome 91 और उसके बाद के वर्शन के लिए
chrome.action.getUserSettings(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

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

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

    (userSettings: UserSettings) => void

रिटर्न

  • Promise<UserSettings>

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

isEnabled()

Promise Chrome 110 और उसके बाद के वर्शन के लिए
chrome.action.isEnabled(
  tabId?: number,
  callback?: function,
)

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

पैरामीटर

  • tabId

    number ज़रूरी नहीं

    उस टैब का आईडी जिसे चालू करने की स्थिति देखनी है.

  • कॉलबैक

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

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

    (isEnabled: boolean) => void

    • isEnabled

      बूलियन

      अगर एक्सटेंशन ऐक्शन चालू है, तो True.

रिटर्न

  • Promise<boolean>

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

openPopup()

Promise Chrome 127 और उसके बाद के वर्शन
chrome.action.openPopup(
  options?: OpenPopupOptions,
  callback?: function,
)

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

पैरामीटर

  • विकल्प

    OpenPopupOptions ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setBadgeBackgroundColor()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      स्ट्रिंग | ColorArray

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

    • tabId

      number ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setBadgeText()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      number ज़रूरी नहीं

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

    • टेक्स्ट

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

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setBadgeTextColor()

Promise Chrome 110 और उसके बाद के वर्शन के लिए
chrome.action.setBadgeTextColor(
  details: object,
  callback?: function,
)

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      स्ट्रिंग | ColorArray

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

    • tabId

      number ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setIcon()

वादा करना
chrome.action.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 96 और उसके बाद के वर्शन

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

setPopup()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • पॉप-अप

      स्ट्रिंग

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

    • tabId

      number ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setTitle()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      number ज़रूरी नहीं

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

    • title

      स्ट्रिंग

      कर्सर घुमाने पर, कार्रवाई के लिए दिखने वाली स्ट्रिंग.

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

इवेंट

onClicked

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (tab: tabs.Tab) => void

onUserSettingsChanged

Chrome 130 और उसके बाद के वर्शन
chrome.action.onUserSettingsChanged.addListener(
  callback: function,
)

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (change: UserSettingsChange) => void