संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
पब्लिश किए गए Editor add-ons, एडिटर के Extensions मेन्यू में कस्टम मेन्यू आइटम बना सकते हैं. Ui.createAddonMenu() तरीके का इस्तेमाल करके, ऐड-ऑन मेन्यू डाला जा सकता है. साथ ही, Menu.addItem() तरीके का इस्तेमाल करके, उसमें आइटम जोड़े जा सकते हैं. मेन्यू आम तौर पर ऐड-ऑन के onOpen(e) तरीके से बनाए जाते हैं.
आपके पास डाइनैमिक मेन्यू बनाने का विकल्प होता है. ये मेन्यू, उपयोगकर्ता की गतिविधियों या ऐड-ऑन की स्थिति के आधार पर बदलते हैं. हालांकि, ऐड-ऑन को शुरुआती मेन्यू पहले बनाना होगा, ताकि उपयोगकर्ता ऐड-ऑन को अनुमति दे सके. इसलिए, onOpen(e) में मेन्यू बनाने से पहले, आपको ऐड-ऑन के अनुमति मोड की जांच करनी होगी. ऐड-ऑन के ScriptApp.AuthMode.NONE में होने पर, ऐसी कोई कार्रवाई न करें जिसके लिए अनुमति की ज़रूरत हो. जैसे, स्क्रिप्ट Properties की जांच करना. ऑथराइज़ेशन के मोड और लाइफ़साइकल के बारे में ज़्यादा जानने के लिए, ऑथराइज़ेशन का लाइफ़साइकल देखें.
यहां दिए गए उदाहरण में, अलग-अलग ऑथराइज़ेशन मोड के लिए डाइनैमिक ऐड-ऑन मेन्यू बनाने का तरीका बताया गया है:
functiononOpen(e){varmenu=SpreadsheetApp.getUi().createAddonMenu();//OrDocumentApporSlidesApporFormApp.if(e && e.authMode==ScriptApp.AuthMode.NONE){//Addanormalmenuitem(worksinallauthorizationmodes).menu.addItem('Start workflow','startWorkflow');}else{//Addamenuitembasedonproperties(doesn't work in AuthMode.NONE).varproperties=PropertiesService.getDocumentProperties();varworkflowStarted=properties.getProperty('workflowStarted');if(workflowStarted){menu.addItem('Check workflow status','checkWorkflow');}else{menu.addItem('Start workflow','startWorkflow');}//Recordanalytics.UrlFetchApp.fetch('http://www.example.com/analytics?event=open');}menu.addToUi();}
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2025-07-31 (UTC) को अपडेट किया गया."],[[["\u003cp\u003ePublished Editor Add-ons can create custom menu items under the Extensions menu using \u003ccode\u003eUi.createAddonMenu()\u003c/code\u003e and \u003ccode\u003eMenu.addItem()\u003c/code\u003e, typically within the add-on's \u003ccode\u003eonOpen(e)\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eWhile unpublished add-ons can create top-level menus, it's recommended to use \u003ccode\u003eUi.createAddonMenu()\u003c/code\u003e for published add-ons to ensure consistent user experience.\u003c/p\u003e\n"],["\u003cp\u003eAdd-ons must create an initial menu before user authorization and adjust menu items dynamically based on the authorization mode (\u003ccode\u003eScriptApp.AuthMode\u003c/code\u003e) to avoid errors.\u003c/p\u003e\n"],["\u003cp\u003eThe provided example demonstrates building a dynamic add-on menu that adapts to different authorization modes, using \u003ccode\u003eScriptApp.AuthMode.NONE\u003c/code\u003e to control actions requiring authorization.\u003c/p\u003e\n"]]],["Editor add-ons create custom menu items under the **Extensions** menu using `Ui.createAddonMenu()` and `Menu.addItem()`, typically within the `onOpen(e)` method. Menus must be defined *before* user authorization, necessitating a check of the add-on's authorization mode. Dynamic menus can change based on user interactions. Actions requiring authorization should not be performed when `AuthMode.NONE`. The provided example shows a dynamic menu construction for different modes, adding either \"Start workflow\" or \"Check workflow status\".\n"],null,[]]