Menus personnalisés pour les modules complémentaires d'éditeurs
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les modules complémentaires pour l'éditeur
publiés peuvent créer des éléments de menu personnalisés dans le menu Extensions de leur éditeur. Insérez un menu de module complémentaire à l'aide de Ui.createAddonMenu et ajoutez-y des éléments avec Menu.addItem. Les menus sont généralement créés dans la méthode onOpen du module complémentaire.
Créez des menus dynamiques qui changent en fonction des interactions de l'utilisateur ou de l'état du module complémentaire. Toutefois, les modules complémentaires doivent créer un menu initial avant que le module complémentaire ne soit autorisé par l'utilisateur. Pour cette raison, vérifiez le
mode d'autorisation du module complémentaire
avant de créer des menus dans onOpen. N'effectuez aucune action qui
nécessite une autorisation (comme la vérification du script
Properties) lorsque le
module complémentaire est en mode ScriptApp.AuthMode.NONE. Pour en savoir plus sur les modes d'autorisation et le cycle de vie, consultez le
cycle de vie de l'autorisation.
Si vous tentez d'effectuer des actions nécessitant une autorisation lorsque le mode d'autorisation est ScriptApp.AuthMode.NONE, une erreur se produit. Cela peut empêcher l'affichage des menus de votre module complémentaire.
L'exemple suivant montre comment créer un menu de module complémentaire dynamique pour différents modes d'autorisation :
functiononOpen(e){// Or DocumentApp, SlidesApp, or FormApp.varmenu=SpreadsheetApp.getUi().createAddonMenu();if(e && e.authMode==ScriptApp.AuthMode.NONE){// Add a normal menu item (works in all authorization modes).menu.addItem('Start workflow','startWorkflow');}else{// Add a menu item based on properties (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');}// Record analytics.UrlFetchApp.fetch('http://www.example.com/analytics?event=open');}menu.addToUi();}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2026/04/01 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2026/04/01 (UTC)."],[],["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"]]