कंपनी का ब्यौरा
Google Chrome के संदर्भ मेन्यू में आइटम जोड़ने के लिए, chrome.contextMenus
API का इस्तेमाल करें. आपके पास यह चुनने का विकल्प होता है कि संदर्भ मेन्यू में जोड़े गए ऑब्जेक्ट किस तरह के ऑब्जेक्ट पर लागू हों, जैसे कि इमेज, हाइपरलिंक, और पेज.
अनुमतियां
contextMenus
एपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "contextMenus"
अनुमति के बारे में एलान करना होगा. साथ ही,
आपको अपने मेन्यू आइटम के बगल में 16 x 16-पिक्सल का आइकॉन दिखाना चाहिए. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
सिद्धांत और इस्तेमाल
संदर्भ मेन्यू आइटम किसी भी दस्तावेज़ (या दस्तावेज़ के फ़्रेम में) में दिख सकते हैं, भले ही वे file://
या chrome:// यूआरएल वाले हों. यह कंट्रोल करने के लिए कि आपके आइटम किन दस्तावेज़ों में दिखें, create()
या update()
तरीकों को कॉल करते समय documentUrlPatterns
फ़ील्ड बताएं.
अपनी ज़रूरत के हिसाब से जितने चाहें उतने संदर्भ मेन्यू आइटम बनाए जा सकते हैं. हालांकि, अगर आपके एक्सटेंशन में से एक से ज़्यादा आइटम एक साथ दिखते हैं, तो Google Chrome उन्हें अपने-आप सिंगल पैरंट मेन्यू में बदल देता है.
उदाहरण
इस एपीआई को इस्तेमाल करने के लिए, chrome-extension-सैंपल डेटा स्टोर करने की जगह से contextमेन्यूs एपीआई का उदाहरण इंस्टॉल करें.
टाइप
ContextType
मेन्यू में दिखने वाले अलग-अलग कॉन्टेक्स्ट. 'सभी' तय करना, 'लॉन्चर' को छोड़कर दूसरे सभी कॉन्टेक्स्ट के कॉम्बिनेशन के बराबर है. 'लॉन्चर' संदर्भ सिर्फ़ ऐप्लिकेशन में काम करता है. इसका इस्तेमाल लॉन्चर/टास्कबार/डॉक/वगैरह में ऐप्लिकेशन आइकॉन को क्लिक करने पर दिखने वाले संदर्भ मेन्यू में मेन्यू आइटम जोड़ने के लिए किया जाता है. लॉन्चर संदर्भ मेन्यू में जो चीज़ें असल में काम करती हैं, उस पर अलग-अलग प्लैटफ़ॉर्म कुछ पाबंदियां लगा सकते हैं.
Enum
"page_action"
CreateProperties
नए संदर्भ मेन्यू आइटम की प्रॉपर्टी.
प्रॉपर्टी
-
सही का निशान लगाया गया
बूलियन ज़रूरी नहीं
चेकबॉक्स या रेडियो बटन की शुरुआती स्थिति: चुने गए के लिए
true
, नहीं चुने गए के लिएfalse
. किसी ग्रुप में, एक बार में सिर्फ़ एक रेडियो बटन चुना जा सकता है. -
संदर्भ
[ContextType, ...ContextType[]] ज़रूरी नहीं है
उन कॉन्टेक्स्ट की सूची जिनमें यह मेन्यू आइटम दिखेगा. डिफ़ॉल्ट वैल्यू
['page']
होती है. -
documentUrlPatterns
स्ट्रिंग[] ज़रूरी नहीं है
आइटम को सिर्फ़ उन दस्तावेज़ों या फ़्रेम के लिए सीमित करता है जिनका यूआरएल दिए गए किसी एक पैटर्न से मेल खाता हो. पैटर्न के फ़ॉर्मैट के बारे में जानकारी के लिए, मैच पैटर्न देखें.
-
चालू किया गया
बूलियन ज़रूरी नहीं
यह संदर्भ मेन्यू आइटम चालू है या बंद है. डिफ़ॉल्ट वैल्यू
true
होती है. -
आईडी
स्ट्रिंग ज़रूरी नहीं
इस आइटम को असाइन किया जाने वाला यूनीक आईडी. इवेंट पेजों के लिए ज़रूरी है. इस एक्सटेंशन के लिए किसी दूसरी आईडी के जैसा नहीं हो सकता.
-
parentId
स्ट्रिंग | नंबर ज़रूरी नहीं
पैरंट मेन्यू आइटम का आईडी; इससे आइटम, पहले जोड़े गए आइटम का चाइल्ड आइटम बनता है.
-
targetUrlPatterns
स्ट्रिंग[] ज़रूरी नहीं है
documentUrlPatterns
की तरह ही,img
,audio
, औरvideo
टैग केsrc
एट्रिब्यूट औरa
टैग केhref
एट्रिब्यूट पर आधारित फ़िल्टर. -
title
स्ट्रिंग ज़रूरी नहीं
आइटम में दिखाया जाने वाला टेक्स्ट. यह तब तक ज़रूरी है, जब तक
type
separator
न हो. जब कॉन्टेक्स्टselection
हो, तो चुने गए टेक्स्ट को दिखाने के लिए, स्ट्रिंग में%s
का इस्तेमाल करें. उदाहरण के लिए, अगर इस पैरामीटर का मान "'%s' का अनुवाद पिग लैटिन में करें" है और उपयोगकर्ता "कूल" शब्द चुनता है, तो संदर्भ मेन्यू आइटम "कूल लैटिन में अनुवाद करें" होगा. -
टाइप
ItemType ज़रूरी नहीं
मेन्यू आइटम का टाइप. डिफ़ॉल्ट वैल्यू
normal
होती है. -
दिख रहा है
बूलियन ज़रूरी नहीं
मेन्यू में आइटम दिख रहा है या नहीं.
-
onclick
अमान्य ज़रूरी नहीं
यह एक ऐसा फ़ंक्शन है जिसे मेन्यू आइटम पर क्लिक करने पर वापस कॉल किया जाता है. यह सर्विस वर्कर में उपलब्ध नहीं है. इसके बजाय, आपको
contextMenus.onClicked
के लिए लिसनर को रजिस्टर करना चाहिए.onclick
फ़ंक्शन ऐसा दिखता है:(info: OnClickData, tab: Tab) => {...}
-
जानकारी
क्लिक किए गए आइटम के बारे में जानकारी और उस जगह का संदर्भ जहां क्लिक हुआ है.
-
टैब से
उस टैब का ब्यौरा जहां क्लिक किया गया. यह पैरामीटर, प्लैटफ़ॉर्म ऐप्लिकेशन के लिए मौजूद नहीं है.
-
ItemType
मेन्यू आइटम का टाइप.
Enum
OnClickData
जब संदर्भ मेन्यू में मौजूद आइटम पर क्लिक किया जाता है, तब यह जानकारी भेजी जाती है.
प्रॉपर्टी
-
सही का निशान लगाया गया
बूलियन ज़रूरी नहीं
चेकबॉक्स या रेडियो आइटम पर क्लिक करने के बाद, उसकी स्थिति को दिखाने वाला फ़्लैग.
-
बदलाव किया जा सकता है
boolean
फ़्लैग बताता है कि एलिमेंट में बदलाव किया जा सकता है या नहीं (टेक्स्ट इनपुट, टेक्स्टक्षेत्र वगैरह).
-
frameId
नंबर ज़रूरी नहीं
Chrome 51 और इसके बाद के वर्शनउस एलिमेंट के फ़्रेम का आईडी जहां संदर्भ मेन्यू पर क्लिक किया गया था. हालांकि, यह तब ज़रूरी है, जब वह फ़्रेम में हो.
-
frameUrl
स्ट्रिंग ज़रूरी नहीं
अगर वह किसी फ़्रेम में था, तो एलिमेंट के फ़्रेम का यूआरएल जहां संदर्भ मेन्यू पर क्लिक किया गया था.
-
linkUrl
स्ट्रिंग ज़रूरी नहीं
अगर एलिमेंट कोई लिंक है, तो वह यूआरएल जिस पर ले जाता है.
-
mediaType
स्ट्रिंग ज़रूरी नहीं
अगर इनमें से किसी एक तरह के एलिमेंट पर संदर्भ मेन्यू चालू था, तो 'इमेज', 'वीडियो' या 'ऑडियो' में से कोई एक.
-
स्ट्रिंग | नंबर
उस मेन्यू आइटम का आईडी जिस पर क्लिक किया गया.
-
pageUrl
स्ट्रिंग ज़रूरी नहीं
उस पेज का यूआरएल जहां मेन्यू आइटम पर क्लिक किया गया था. अगर क्लिक किसी ऐसी वजह से हुआ है जहां कोई मौजूदा पेज नहीं है, तो यह प्रॉपर्टी सेट नहीं होगी, जैसे कि लॉन्चर संदर्भ मेन्यू.
-
parentMenuItemId
स्ट्रिंग | नंबर ज़रूरी नहीं
क्लिक किए गए आइटम का पैरंट आईडी, अगर कोई है.
-
selectionText
स्ट्रिंग ज़रूरी नहीं
संदर्भ चुनने के लिए टेक्स्ट, अगर कोई है.
-
srcUrl
स्ट्रिंग ज़रूरी नहीं
'src' यूआरएल वाले एलिमेंट के लिए मौजूद होगा.
-
wasChecked
बूलियन ज़रूरी नहीं
क्लिक किए जाने से पहले, चेकबॉक्स या रेडियो आइटम की स्थिति को दिखाने वाला फ़्लैग.
प्रॉपर्टी
ACTION_MENU_TOP_LEVEL_LIMIT
टॉप लेवल के एक्सटेंशन आइटम की ज़्यादा से ज़्यादा संख्या, जिन्हें एक्सटेंशन ऐक्शन संदर्भ मेन्यू में जोड़ा जा सकता है. इस सीमा से ज़्यादा आइटम को अनदेखा कर दिया जाएगा.
वैल्यू
6
तरीके
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
)
यह नया संदर्भ मेन्यू आइटम बनाता है. अगर रिकॉर्डिंग बनाने के दौरान कोई गड़बड़ी होती है, तो हो सकता है कि उसे कॉलबैक के चालू न होने तक उसका पता न चले. इसकी जानकारी runtime.lastError
में मिलेगी.
पैरामीटर
-
createProperties
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:() => void
लौटाए गए प्रॉडक्ट
-
संख्या | स्ट्रिंग
नए बनाए गए आइटम का आईडी.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
इससे संदर्भ मेन्यू आइटम हट जाता है.
पैरामीटर
-
स्ट्रिंग | नंबर
हटाए जाने वाले संदर्भ मेन्यू आइटम का आईडी.
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:() => void
लौटाए गए प्रॉडक्ट
-
Promise<void>
Chrome 123 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
इस एक्सटेंशन के ज़रिए जोड़े गए सभी संदर्भ मेन्यू आइटम हटा देता है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:() => void
लौटाए गए प्रॉडक्ट
-
Promise<void>
Chrome 123 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
पहले से बनाए गए संदर्भ मेन्यू के आइटम को अपडेट करता है.
पैरामीटर
-
आईडी
स्ट्रिंग | नंबर
अपडेट किए जाने वाले आइटम का आईडी.
-
updateProperties
ऑब्जेक्ट
अपडेट की जाने वाली प्रॉपर्टी. वही वैल्यू स्वीकार करता है जो
contextMenus.create
फ़ंक्शन के लिए होती हैं.-
सही का निशान लगाया गया
बूलियन ज़रूरी नहीं
-
संदर्भ
[ContextType, ...ContextType[]] ज़रूरी नहीं है
-
documentUrlPatterns
स्ट्रिंग[] ज़रूरी नहीं है
-
चालू किया गया
बूलियन ज़रूरी नहीं
-
parentId
स्ट्रिंग | नंबर ज़रूरी नहीं
उस आइटम का आईडी जिसे इस आइटम का पैरंट आईडी बनाया जाना है. ध्यान दें: किसी आइटम को उसके वंशज का चाइल्ड बनने के लिए सेट नहीं किया जा सकता.
-
targetUrlPatterns
स्ट्रिंग[] ज़रूरी नहीं है
-
title
स्ट्रिंग ज़रूरी नहीं
-
टाइप
ItemType ज़रूरी नहीं
-
दिख रहा है
बूलियन ज़रूरी नहीं
Chrome 62 और इसके बाद के वर्शनमेन्यू में आइटम दिख रहा है या नहीं.
-
onclick
अमान्य ज़रूरी नहीं
onclick
फ़ंक्शन ऐसा दिखता है:(info: OnClickData, tab: Tab) => {...}
-
जानकारीChrome 44 और इसके बाद के वर्शन
-
टैब सेChrome 44 और इसके बाद के वर्शन
उस टैब का ब्यौरा जहां क्लिक किया गया. यह पैरामीटर, प्लैटफ़ॉर्म ऐप्लिकेशन के लिए मौजूद नहीं है.
-
-
-
कॉलबैक
फ़ंक्शन ज़रूरी नहीं
callback
पैरामीटर ऐसा दिखता है:() => void
लौटाए गए प्रॉडक्ट
-
Promise<void>
Chrome 123 के बाद के वर्शनप्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.
इवेंट
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
जब संदर्भ मेन्यू आइटम पर क्लिक किया जाता है, तब ट्रिगर होता है.
पैरामीटर
-
कॉलबैक
function
callback
पैरामीटर ऐसा दिखता है:(info: OnClickData, tab?: tabs.Tab) => void
-
जानकारी
-
टैब से
tabs.Tab ज़रूरी नहीं
-