Trình đơn tuỳ chỉnh cho tiện ích bổ sung của Trình chỉnh sửa
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tiện ích bổ sung cho trình chỉnh sửa đã xuất bản có thể tạo các mục tuỳ chỉnh trong trình đơn Tiện ích của trình chỉnh sửa. Chèn một trình đơn bổ sung bằng cách sử dụng Ui.createAddonMenu và thêm các mục vào trình đơn đó bằng Menu.addItem. Trình đơn thường được tạo trong phương thức onOpen của tiện ích bổ sung.
Tạo các trình đơn động thay đổi dựa trên hoạt động tương tác của người dùng hoặc trạng thái của tiện ích bổ sung. Tuy nhiên, các tiện ích bổ sung phải tạo một trình đơn ban đầu trước khi người dùng cho phép tiện ích bổ sung. Do đó, hãy kiểm tra chế độ uỷ quyền của tiện ích bổ sung trước khi tạo trình đơn trong onOpen. Không thực hiện bất kỳ hành động nào yêu cầu uỷ quyền (chẳng hạn như kiểm tra tập lệnh Properties) trong khi tiện ích bổ sung ở trạng thái ScriptApp.AuthMode.NONE. Hãy xem vòng đời uỷ quyền để biết thêm thông tin chi tiết về các chế độ và vòng đời uỷ quyền.
Nếu bạn cố gắng thực hiện các thao tác cần có quyền khi chế độ uỷ quyền là ScriptApp.AuthMode.NONE, thì sẽ xảy ra lỗi. Điều này có thể khiến trình đơn bổ sung của bạn không xuất hiện.
Ví dụ sau đây cho thấy cách tạo một trình đơn tiện ích bổ sung động cho các chế độ uỷ quyền khác nhau:
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();}
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2026-03-28 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"]]