ब्यौरा
Google Chrome के कॉन्टेक्स्ट मेन्यू में आइटम जोड़ने के लिए, chrome.contextMenus एपीआई का इस्तेमाल करें. आपके पास यह चुनने का विकल्प होता है कि संदर्भ मेन्यू में जोड़े गए विकल्प, किस तरह के ऑब्जेक्ट पर लागू हों. जैसे, इमेज, हाइपरलिंक, और पेज.
अनुमतियां
contextMenusइस्तेमाल
कॉन्टेक्स्ट मेन्यू के आइटम, किसी भी दस्तावेज़ (या दस्तावेज़ में मौजूद फ़्रेम) में दिख सकते हैं. भले ही, उनके यूआरएल file://
या chrome:// हों. यह कंट्रोल करने के लिए कि आपके आइटम किन दस्तावेज़ों में दिखें, create() या update() तरीके को कॉल करते समय, documentUrlPatterns फ़ील्ड तय करें.
ज़रूरत के हिसाब से, कॉन्टेक्स्ट मेन्यू के आइटम बनाए जा सकते हैं. हालांकि, अगर आपके एक्सटेंशन के एक से ज़्यादा आइटम एक साथ दिखते हैं, तो Google Chrome उन्हें अपने-आप एक पैरंट मेन्यू में छोटा कर देता है.
मेनिफ़ेस्ट
एपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "contextMenus" अनुमति का एलान करना होगा. इसके अलावा, आपको मेन्यू आइटम के बगल में दिखाने के लिए, 16x16 पिक्सल का आइकॉन भी तय करना होगा. उदाहरण के लिए:
{
  "name": "My extension",
  ...
  "permissions": [
    "contextMenus"
  ],
  "icons": {
    "16": "icon-bitty.png",
    "48": "icon-small.png",
    "128": "icon-large.png"
  },
  ...
}
उदाहरण
इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से contextMenus API का उदाहरण इंस्टॉल करें.
टाइप
ContextType
अलग-अलग कॉन्टेक्स्ट, जिनमें मेन्यू दिख सकता है. 'सभी' को चुनने का मतलब है कि आपने 'लॉन्चर' को छोड़कर, अन्य सभी कॉन्टेक्स्ट चुने हैं. 'लॉन्चर' कॉन्टेक्स्ट का इस्तेमाल सिर्फ़ ऐप्लिकेशन के लिए किया जा सकता है. इसका इस्तेमाल, लॉन्चर/टास्कबार/डॉक/वगैरह में ऐप्लिकेशन के आइकॉन पर क्लिक करने पर दिखने वाले कॉन्टेक्स्ट मेन्यू में मेन्यू आइटम जोड़ने के लिए किया जाता है. अलग-अलग प्लैटफ़ॉर्म, लॉन्चर कॉन्टेक्स्ट मेन्यू में उपलब्ध सुविधाओं पर पाबंदियां लगा सकते हैं.
Enum
"all" 
 
"page" 
 
"frame" 
 
"selection" 
 
"link" 
 
"editable" 
 
"image" 
 
"video" 
 
"audio" 
 
"launcher" 
 
"browser_action" 
 
"page_action" 
 
"action" 
 
CreateProperties
कॉन्टेक्स्ट मेन्यू के नए आइटम की प्रॉपर्टी.
प्रॉपर्टी
- 
    सही का निशान लगाया गयाबूलियन ज़रूरी नहीं है चेकबॉक्स या रेडियो बटन की शुरुआती स्थिति: चुने गए के लिए trueऔर नहीं चुने गए के लिएfalse. किसी ग्रुप में, एक बार में सिर्फ़ एक रेडियो बटन चुना जा सकता है.
- 
    कॉन्टेक्स्ट[ContextType, ...ContextType[]] optional उन कॉन्टेक्स्ट की सूची जिनमें यह मेन्यू आइटम दिखेगा. डिफ़ॉल्ट रूप से, यह ['page']पर सेट होती है.
- 
    documentUrlPatternsstring[] ज़रूरी नहीं है यह आइटम को सिर्फ़ उन दस्तावेज़ों या फ़्रेम पर लागू होने से रोकता है जिनका यूआरएल, दिए गए पैटर्न में से किसी एक से मेल खाता है. पैटर्न फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, मैच पैटर्न देखें. 
- 
    चालू किया गयाबूलियन ज़रूरी नहीं है यह संदर्भ मेन्यू आइटम चालू है या बंद है. डिफ़ॉल्ट रूप से, यह trueपर सेट होती है.
- 
    आईडीstring ज़रूरी नहीं है इस आइटम को असाइन किया जाने वाला यूनीक आईडी. इवेंट पेजों के लिए ज़रूरी है. यह आईडी, इस एक्सटेंशन के लिए किसी दूसरे आईडी के जैसा नहीं होना चाहिए. 
- 
    parentIdstring | number ज़रूरी नहीं पैरंट मेन्यू आइटम का आईडी. इससे आइटम, पहले से जोड़े गए आइटम का चाइल्ड बन जाता है. 
- 
    targetUrlPatternsstring[] ज़रूरी नहीं है documentUrlPatternsकी तरह ही,img,audio, औरvideoटैग केsrcएट्रिब्यूट औरaटैग केhrefएट्रिब्यूट के आधार पर फ़िल्टर किए जाते हैं.
- 
    titlestring ज़रूरी नहीं है आइटम में दिखने वाला टेक्स्ट. अगर typeकी वैल्यूseparatorहै, तो यह एट्रिब्यूट ज़रूरी नहीं है. जब कॉन्टेक्स्टselectionहो, तब चुने गए टेक्स्ट को दिखाने के लिए स्ट्रिंग में%sका इस्तेमाल करें. उदाहरण के लिए, अगर इस पैरामीटर की वैल्यू "Translate '%s' to Pig Latin" है और उपयोगकर्ता "cool" शब्द चुनता है, तो चुने गए शब्द के लिए कॉन्टेक्स्ट मेन्यू आइटम "Translate 'cool' to Pig Latin" होगा.
- 
    टाइपItemType ज़रूरी नहीं है मेन्यू आइटम का टाइप. डिफ़ॉल्ट रूप से, यह normalपर सेट होती है.
- 
    दिख रहा हैबूलियन ज़रूरी नहीं है यह आइटम मेन्यू में दिखता है या नहीं. 
- 
    onclickvoid ज़रूरी नहीं है मेन्यू आइटम पर क्लिक करने पर, इस फ़ंक्शन को वापस कॉल किया जाता है. यह सर्विस वर्कर में उपलब्ध नहीं है. इसके बजाय, आपको contextMenus.onClickedके लिए लिसनर रजिस्टर करना चाहिए.onclickफ़ंक्शन इस तरह दिखता है:(info: OnClickData, tab: Tab) => {...} - 
    जानकारीक्लिक किए गए आइटम और उस कॉन्टेक्स्ट के बारे में जानकारी जहां क्लिक किया गया था. 
- 
    टैबउस टैब की जानकारी जहां क्लिक किया गया था. यह पैरामीटर, प्लैटफ़ॉर्म ऐप्लिकेशन के लिए मौजूद नहीं है. 
 
- 
    
ItemType
मेन्यू आइटम का टाइप.
Enum
"normal" 
 
"checkbox" 
 
"radio" 
 
"separator" 
 
OnClickData
कॉन्टेक्स्ट मेन्यू में मौजूद किसी आइटम पर क्लिक करने पर यह जानकारी भेजी जाती है.
प्रॉपर्टी
- 
    सही का निशान लगाया गयाबूलियन ज़रूरी नहीं है इस फ़्लैग से यह पता चलता है कि क्लिक करने के बाद, चेकबॉक्स या रेडियो बटन की स्थिति क्या है. 
- 
    बदलाव किया जा सकता हैबूलियन इस फ़्लैग से पता चलता है कि एलिमेंट में बदलाव किया जा सकता है या नहीं. जैसे, टेक्स्ट इनपुट, टेक्स्ट एरिया वगैरह. 
- 
    frameIdnumber ज़रूरी नहीं Chrome 51 या इसके बाद के वर्शनअगर संदर्भ मेन्यू किसी फ़्रेम में था, तो उस एलिमेंट के फ़्रेम का आईडी जिस पर संदर्भ मेन्यू पर क्लिक किया गया था. 
- 
    frameUrlstring ज़रूरी नहीं है अगर संदर्भ मेन्यू को किसी फ़्रेम में मौजूद एलिमेंट पर क्लिक करके खोला गया था, तो उस फ़्रेम का यूआरएल. 
- 
    linkUrlstring ज़रूरी नहीं है अगर एलिमेंट कोई लिंक है, तो यह उस यूआरएल को दिखाता है जिस पर वह ले जाता है. 
- 
    mediaTypestring ज़रूरी नहीं है अगर संदर्भ मेन्यू को इनमें से किसी एक तरह के एलिमेंट पर चालू किया गया था, तो 'image', 'video' या 'audio' में से कोई एक. 
- 
    string | number उस मेन्यू आइटम का आईडी जिस पर क्लिक किया गया था. 
- 
    pageUrlstring ज़रूरी नहीं है उस पेज का यूआरएल जहां मेन्यू आइटम पर क्लिक किया गया था. अगर क्लिक ऐसे कॉन्टेक्स्ट में हुआ है जहां कोई मौजूदा पेज नहीं है, तो यह प्रॉपर्टी सेट नहीं होती. जैसे, लॉन्चर के कॉन्टेक्स्ट मेन्यू में. 
- 
    parentMenuItemIdstring | number ज़रूरी नहीं क्लिक किए गए आइटम का पैरंट आईडी, अगर कोई हो. 
- 
    selectionTextstring ज़रूरी नहीं है अगर कोई हो, तो कॉन्टेक्स्ट चुनने के लिए टेक्स्ट. 
- 
    srcUrlstring ज़रूरी नहीं है यह 'src' एट्रिब्यूट वाले एलिमेंट के लिए मौजूद होगा. 
- 
    wasCheckedबूलियन ज़रूरी नहीं है यह फ़्लैग, चेकबॉक्स या रेडियो बटन पर क्लिक करने से पहले उसकी स्थिति के बारे में बताता है. 
प्रॉपर्टी
ACTION_MENU_TOP_LEVEL_LIMIT
एक्सटेंशन ऐक्शन के कॉन्टेक्स्ट मेन्यू में, ज़्यादा से ज़्यादा कितने टॉप लेवल एक्सटेंशन आइटम जोड़े जा सकते हैं. इस सीमा से ज़्यादा आइटम को अनदेखा कर दिया जाएगा.
मान
6 
 
तरीके
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
इससे नया कॉन्टेक्स्ट मेन्यू आइटम बनता है. अगर क्रिएशन के दौरान कोई गड़बड़ी होती है, तो हो सकता है कि क्रिएशन कॉलबैक ट्रिगर होने तक उसका पता न चले. इसकी जानकारी runtime.lastError में दी जाएगी.
पैरामीटर
- 
    createProperties
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            number | string नए बनाए गए आइटम का आईडी. 
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
): Promise<void>
इससे कॉन्टेक्स्ट मेन्यू का कोई आइटम हटाया जाता है.
पैरामीटर
- 
    string | number हटाए जाने वाले कॉन्टेक्स्ट मेन्यू आइटम का आईडी. 
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 123 या इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
): Promise<void>
यह एक्सटेंशन, संदर्भ मेन्यू में जोड़े गए सभी आइटम हटा देता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 123 या इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
): Promise<void>
यह पहले से बनाए गए कॉन्टेक्स्ट मेन्यू आइटम को अपडेट करता है.
पैरामीटर
- 
    आईडीstring | number अपडेट किए जाने वाले आइटम का आईडी. 
- 
    updatePropertiesऑब्जेक्ट अपडेट की जाने वाली प्रॉपर्टी. यह contextMenus.createफ़ंक्शन की तरह ही वैल्यू स्वीकार करता है.- 
    सही का निशान लगाया गयाबूलियन ज़रूरी नहीं है 
- 
    कॉन्टेक्स्ट[ContextType, ...ContextType[]] optional 
- 
    documentUrlPatternsstring[] ज़रूरी नहीं है 
- 
    चालू किया गयाबूलियन ज़रूरी नहीं है 
- 
    parentIdstring | number ज़रूरी नहीं उस आइटम का आईडी जिसे इस आइटम का पैरंट बनाना है. ध्यान दें: किसी आइटम को उसके डिसेंडेंट का चाइल्ड नहीं बनाया जा सकता. 
- 
    targetUrlPatternsstring[] ज़रूरी नहीं है 
- 
    titlestring ज़रूरी नहीं है 
- 
    टाइपItemType ज़रूरी नहीं है 
- 
    दिख रहा हैबूलियन ज़रूरी नहीं है Chrome 62 या इसके बाद के वर्शनयह आइटम मेन्यू में दिखता है या नहीं. 
- 
    onclickvoid ज़रूरी नहीं है onclickफ़ंक्शन इस तरह दिखता है:(info: OnClickData, tab: Tab) => {...} - 
    जानकारीChrome 44 या इसके बाद का वर्शन
- 
    टैबChrome 44 या इसके बाद का वर्शनउस टैब की जानकारी जहां क्लिक किया गया था. यह पैरामीटर, प्लैटफ़ॉर्म ऐप्लिकेशन के लिए मौजूद नहीं है. 
 
- 
    
 
- 
    
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:() => void 
रिटर्न
- 
            Promise<void> Chrome 123 या इसके बाद के वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
इवेंट
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
जब कॉन्टेक्स्ट मेन्यू के किसी आइटम पर क्लिक किया जाता है, तब यह इवेंट ट्रिगर होता है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(info: OnClickData, tab?: tabs.Tab) => void - 
    जानकारी
- 
    टैबtabs.Tab optional 
 
-