chrome.action

ब्यौरा

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

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

उपलब्धता

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 API की सेटिंग के तरीकों में tabId प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए, किसी टैब के लिए बैज का टेक्स्ट सेट करने के लिए, यह तरीका अपनाएं:

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

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

अगर tabId प्रॉपर्टी को छोड़ दिया जाता है, तो इस सेटिंग को ग्लोबल सेटिंग के तौर पर माना जाता है. टैब की खास सेटिंग को ग्लोबल सेटिंग के मुकाबले प्राथमिकता दी जाती है.

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

डिफ़ॉल्ट रूप से, हर टैब पर टूलबार की कार्रवाइयां चालू होती हैं (क्लिक की जा सकती हैं). इसे कंट्रोल करने के लिए, 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

    नंबर वैकल्पिक

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

TabDetails

प्रॉपर्टी

  • tabId

    नंबर वैकल्पिक

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

UserSettings

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

किसी एक्सटेंशन की कार्रवाई के लिए उपयोगकर्ता की तय की गई सेटिंग का संग्रह.

प्रॉपर्टी

  • isOnToolbar

    बूलियन

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

UserSettingsChange

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

प्रॉपर्टी

  • isOnToolbar

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

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

तरीके

disable()

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

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

पैरामीटर

  • tabId

    नंबर वैकल्पिक

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

enable()

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

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

पैरामीटर

  • tabId

    नंबर वैकल्पिक

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

getBadgeBackgroundColor()

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

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

पैरामीटर

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

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

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

    (result: ColorArray) => void

रिटर्न

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

getBadgeText()

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

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

पैरामीटर

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

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

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

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

getBadgeTextColor()

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

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

पैरामीटर

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

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

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

    (result: ColorArray) => void

रिटर्न

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

getPopup()

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

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

पैरामीटर

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

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

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

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

getTitle()

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

कार्रवाई का टाइटल बताता है.

पैरामीटर

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

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

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

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

getUserSettings()

वादा Chrome 91+
chrome.action.getUserSettings(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

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

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

    (userSettings: UserSettings) => void

रिटर्न

  • Promise&lt;UserSettings&gt;

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

isEnabled()

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

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

पैरामीटर

  • tabId

    number ज़रूरी नहीं

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

  • कॉलबैक

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

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

    (isEnabled: boolean) => void

    • isEnabled

      बूलियन

      एक्सटेंशन की कार्रवाई चालू होने पर, 'सही'.

रिटर्न

  • Promise&lt;boolean&gt;

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

openPopup()

वादा Chrome 127+
chrome.action.openPopup(
  options?: OpenPopupOptions,
  callback?: function,
)

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

पैरामीटर

  • विकल्प

    OpenPopupOptions ज़रूरी नहीं

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setBadgeBackgroundColor()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      स्ट्रिंग | ColorArray

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

    • tabId

      नंबर वैकल्पिक

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setBadgeText()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      नंबर वैकल्पिक

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

    • टेक्स्ट

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

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setBadgeTextColor()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • रंग

      स्ट्रिंग | ColorArray

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

    • tabId

      नंबर वैकल्पिक

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

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

    • tabId

      नंबर वैकल्पिक

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

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

setPopup()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • पॉप-अप

      स्ट्रिंग

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

    • tabId

      नंबर वैकल्पिक

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

setTitle()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      नंबर वैकल्पिक

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

    • title

      स्ट्रिंग

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

  • कॉलबैक

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

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

    () => void

रिटर्न

  • Promise<void>

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

इवेंट

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