Menús personalizados para complementos del editor
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los complementos del Editor
publicados pueden crear elementos de menú personalizados en el menú Extensiones del editor. Inserta un menú de complementos con Ui.createAddonMenu y agrégale elementos con Menu.addItem. Por lo general, los menús se crean en el método onOpen del complemento.
Crea menús dinámicos que cambien según las interacciones del usuario o el estado del complemento. Sin embargo, los complementos deben crear un menú inicial antes de que el usuario los autorice. Por este motivo, verifica el
modo de autorización del complemento
antes de crear menús en onOpen. No realices ninguna acción que
requiera autorización (como verificar
Properties de la secuencia de comandos) mientras el
complemento esté en ScriptApp.AuthMode.NONE. Consulta el
ciclo de vida de la autorización
para obtener más detalles sobre los modos y el ciclo de vida de la autorización.
Si intentas realizar acciones que requieren autorización cuando el modo de autorización es ScriptApp.AuthMode.NONE, se produce un error. Esto podría impedir que se muestren los menús de complementos.
En el siguiente ejemplo, se muestra cómo compilar un menú de complementos dinámico para diferentes modos de autorización:
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();}
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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"]]