chrome.pageAction

ब्यौरा

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

उपलब्धता

≤ 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 तरीकों का इस्तेमाल करके, पेज ऐक्शन को दिखाया जाता है और धूसर किया जाता है. डिफ़ॉल्ट रूप से, पेज कार्रवाई धूसर दिखती है. इसे दिखाने पर, आपको वह टैब चुनना होगा जिसमें आइकॉन दिखना चाहिए. यह आइकॉन तब तक दिखता रहता है, जब तक टैब बंद नहीं किया जाता या कोई दूसरा यूआरएल दिखाना शुरू नहीं करता. ऐसा इसलिए, क्योंकि उपयोगकर्ता किसी लिंक पर क्लिक करता है.

सलाह

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

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

टाइप

ImageDataType

किसी इमेज के लिए Pixel डेटा. यह कोई ImageData ऑब्जेक्ट होना चाहिए (जैसे, किसी canvas एलिमेंट से).

टाइप

ImageData

TabDetails

Chrome 88+

प्रॉपर्टी

  • tabId

    नंबर ज़रूरी नहीं

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

तरीके

getPopup()

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

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

पैरामीटर

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

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

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

    (result: string)=>void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • प्रॉमिस<string>

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

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

getTitle()

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

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

पैरामीटर

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

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

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

    (result: string)=>void

    • नतीजा

      स्ट्रिंग

रिटर्न

  • प्रॉमिस<string>

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

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

hide()

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

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

पैरामीटर

  • tabId

    नंबर

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

  • कॉलबैक

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

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

setIcon()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • iconIndex

      नंबर ज़रूरी नहीं

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

    • imageData

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

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

    • पाथ

      स्ट्रिंग|ऑब्जेक्ट ज़रूरी नहीं

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

    • tabId

      नंबर

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

  • कॉलबैक

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

setPopup()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • पॉप-अप

      स्ट्रिंग

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

    • tabId

      नंबर

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

  • कॉलबैक

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

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

setTitle()

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

पेज की कार्रवाई का शीर्षक सेट करता है. यह जानकारी, पेज पर की जाने वाली कार्रवाई के टूलटिप के तौर पर दिखती है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    • tabId

      नंबर

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

    • title

      स्ट्रिंग

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

  • कॉलबैक

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

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

show()

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

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

पैरामीटर

  • tabId

    नंबर

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

  • कॉलबैक

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

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

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

    ()=>void

रिटर्न

  • Promise<void>

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

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

इवेंट

onClicked

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (tab: tabs.Tab)=>void