chrome.pageAction

refresh date: 2026-09-25 robots: noindex

ब्यौरा

chrome.pageAction एपीआई का इस्तेमाल करके, Google Chrome के मुख्य टूलबार में, पता बार की दाईं ओर आइकॉन जोड़ें. पेज ऐक्शन, ऐसी कार्रवाइयां होती हैं जो मौजूदा पेज पर की जा सकती हैं. हालांकि, ये सभी पेजों पर लागू नहीं होतीं. पेज पर की जाने वाली कार्रवाइयां, चालू न होने पर धूसर दिखती हैं.

उपलब्धता

≤ MV2

कुछ उदाहरण:

  • इस पेज के आरएसएस फ़ीड की सदस्यता लें
  • इस पेज पर मौजूद फ़ोटो का स्लाइड शो बनाएं

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

छिपाए गए पेज की कार्रवाइयां धूसर रंग में दिखती हैं. उदाहरण के लिए, यहां दिए गए आरएसएस फ़ीड का रंग धूसर है, क्योंकि मौजूदा पेज के लिए फ़ीड की सदस्यता नहीं ली जा सकती:

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

मेनिफ़ेस्ट

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

{
  "name": "My extension",
  ...
  "page_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
  },
  ...
}

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

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

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

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

ब्राउज़र ऐक्शन की तरह, पेज ऐक्शन में आइकॉन, टूलटिप, और पॉप-अप हो सकता है. हालांकि, इनमें बैज नहीं हो सकते. इसके अलावा, पेज पर की जाने वाली कार्रवाइयां धूसर हो सकती हैं. ब्राउज़र ऐक्शन यूज़र इंटरफ़ेस (यूआई) के बारे में पढ़कर, आइकॉन, टूलटिप, और पॉप-अप के बारे में जानकारी पाई जा सकती है.

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

सलाह

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

  • Do use page actions for features that make sense for only a few pages.
  • ऐसी सुविधाओं के लिए पेज ऐक्शन का इस्तेमाल न करें जो ज़्यादातर पेजों के लिए काम की हों. इसके बजाय, ब्राउज़र ऐक्शन का इस्तेमाल करें.
  • अपने आइकॉन को लगातार ऐनिमेट न करें. यह बहुत ही परेशान करने वाला है.

टाइप

ImageDataType

किसी इमेज का पिक्सल डेटा. यह ImageData ऑब्जेक्ट होना चाहिए. उदाहरण के लिए, canvas एलिमेंट से.

टाइप

ImageData

TabDetails

Chrome 88 या इसके बाद का वर्शन

प्रॉपर्टी

  • tabId

    number ज़रूरी नहीं

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

तरीके

getPopup()

वादा
chrome.pageAction.getPopup(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

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

पैरामीटर

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

    function ज़रूरी नहीं

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

    Chrome 101+

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

getTitle()

वादा
chrome.pageAction.getTitle(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

इससे पेज ऐक्शन का टाइटल मिलता है.

पैरामीटर

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

    function ज़रूरी नहीं

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

    (result: string) => void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • Promise<string>

    Chrome 101+

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

hide()

वादा
chrome.pageAction.hide(
  tabId: number,
  callback?: function,
)
: Promise<void>

पेज ऐक्शन को छिपाता है. छिपाई गई पेज कार्रवाइयां, Chrome टूलबार में अब भी दिखती हैं. हालांकि, वे धूसर रंग में दिखती हैं.

पैरामीटर

  • tabId

    संख्या

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

  • कॉलबैक

    function ज़रूरी नहीं

    Chrome 67+

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

    () => void

रिटर्न

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

    Chrome 101+

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

setIcon()

वादा
chrome.pageAction.setIcon(
  details: object,
  callback?: function,
)
: Promise<void>

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • iconIndex

      number ज़रूरी नहीं

      अब काम नहीं करता. इस आर्ग्युमेंट को अनदेखा कर दिया जाता है.

    • 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

      संख्या

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

  • कॉलबैक

    function ज़रूरी नहीं

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

    () => void

रिटर्न

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

    Chrome 101+

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

setPopup()

वादा
chrome.pageAction.setPopup(
  details: object,
  callback?: function,
)
: Promise<void>

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • पॉप-अप

      स्ट्रिंग

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

    • tabId

      संख्या

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

  • कॉलबैक

    function ज़रूरी नहीं

    Chrome 67+

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

    () => void

रिटर्न

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

    Chrome 101+

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

setTitle()

वादा
chrome.pageAction.setTitle(
  details: object,
  callback?: function,
)
: Promise<void>

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      संख्या

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

    • title

      स्ट्रिंग

      टूलटिप स्ट्रिंग.

  • कॉलबैक

    function ज़रूरी नहीं

    Chrome 67+

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

    () => void

रिटर्न

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

    Chrome 101+

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

show()

वादा
chrome.pageAction.show(
  tabId: number,
  callback?: function,
)
: Promise<void>

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

पैरामीटर

  • tabId

    संख्या

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

  • कॉलबैक

    function ज़रूरी नहीं

    Chrome 67+

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

    () => void

रिटर्न

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

    Chrome 101+

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

इवेंट

onClicked

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (tab: tabs.Tab) => void