Экземпляр среды пользовательского интерфейса для приложения Google, который позволяет сценарию добавлять такие функции, как меню, диалоговые окна и боковые панели. Сценарий может взаимодействовать только с пользовательским интерфейсом текущего экземпляра открытого редактора и только в том случае, если сценарий привязан к контейнеру редактора.
// Display a dialog box with a title, message, input field, and "Yes" and "No" // buttons. The user can also close the dialog by clicking the close button in // its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt( 'Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response.getSelectedButton() === ui.Button.YES) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else if (response.getSelectedButton() === ui.Button.NO) { Logger.log('The user didn\'t want to provide a name.'); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Характеристики
Свойство | Тип | Описание |
---|---|---|
Button | Button | Перечисление, представляющее заранее определенные локализованные кнопки диалогового окна, возвращаемые предупреждением или Prompt Response.getSelectedButton() чтобы указать, какую кнопку в диалоговом окне нажал пользователь. |
Button Set | Button Set | Перечисление, представляющее заранее определенные локализованные наборы одной или нескольких диалоговых кнопок, которые можно добавить к предупреждению или подсказке . |
Методы
Метод | Тип возврата | Краткое описание |
---|---|---|
alert(prompt) | Button | Открывает диалоговое окно в пользовательском редакторе с заданным сообщением и кнопкой «ОК». |
alert(prompt, buttons) | Button | Открывает диалоговое окно в пользовательском редакторе с заданным сообщением и набором кнопок. |
alert(title, prompt, buttons) | Button | Открывает диалоговое окно в пользовательском редакторе с заданным заголовком, сообщением и набором кнопок. |
create Addon Menu() | Menu | Создает конструктор, который можно использовать для вставки подменю в меню «Расширения» редактора. |
create Menu(caption) | Menu | Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора. |
prompt(prompt) | Prompt Response | Открывает диалоговое окно ввода в пользовательском редакторе с заданным сообщением и кнопкой «ОК». |
prompt(prompt, buttons) | Prompt Response | Открывает диалоговое окно ввода в пользовательском редакторе с заданным сообщением и набором кнопок. |
prompt(title, prompt, buttons) | Prompt Response | Открывает диалоговое окно ввода в пользовательском редакторе с заданным заголовком, сообщением и набором кнопок. |
show Modal Dialog(userInterface, title) | void | Открывает модальное диалоговое окно в пользовательском редакторе с пользовательским содержимым на стороне клиента. |
show Modeless Dialog(userInterface, title) | void | Открывает немодальное диалоговое окно в пользовательском редакторе с пользовательским содержимым на стороне клиента. |
show Sidebar(userInterface) | void | Открывает боковую панель в пользовательском редакторе с пользовательским контентом на стороне клиента. |
Подробная документация
alert(prompt)
Открывает диалоговое окно в пользовательском редакторе с заданным сообщением и кнопкой «ОК». Этот метод приостанавливает выполнение серверного сценария, пока диалоговое окно открыто. Сценарий возобновляется после того, как пользователь закрывает диалоговое окно, но соединения Jdbc
и Lock Service
не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
// Display "Hello, world" in a dialog box with an "OK" button. The user can also // close the dialog by clicking the close button in its title bar. SpreadsheetApp.getUi().alert('Hello, world');
Параметры
Имя | Тип | Описание |
---|---|---|
prompt | String | Сообщение, отображаемое в диалоговом окне. |
Возвращаться
Button
— кнопка, нажатая пользователем.
alert(prompt, buttons)
Открывает диалоговое окно в пользовательском редакторе с заданным сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного сценария, пока диалоговое окно открыто. Сценарий возобновляется после того, как пользователь закрывает диалоговое окно, но соединения Jdbc
и Lock Service
не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
// Display a dialog box with a message and "Yes" and "No" buttons. The user can // also close the dialog by clicking the close button in its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.alert( 'Are you sure you want to continue?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response === ui.Button.YES) { Logger.log('The user clicked "Yes."'); } else { Logger.log( 'The user clicked "No" or the close button in the dialog\'s title bar.', ); }
Параметры
Имя | Тип | Описание |
---|---|---|
prompt | String | Сообщение, отображаемое в диалоговом окне. |
buttons | Button Set | Кнопка настроена для отображения в диалоговом окне. |
Возвращаться
Button
— кнопка, нажатая пользователем.
alert(title, prompt, buttons)
Открывает диалоговое окно в пользовательском редакторе с заданным заголовком, сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного сценария, пока диалоговое окно открыто. Сценарий возобновляется после того, как пользователь закрывает диалоговое окно, но соединения Jdbc
и Lock Service
не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
// Display a dialog box with a title, message, and "Yes" and "No" buttons. The // user can also close the dialog by clicking the close button in its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.alert( 'Confirm', 'Are you sure you want to continue?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response === ui.Button.YES) { Logger.log('The user clicked "Yes."'); } else { Logger.log( 'The user clicked "No" or the close button in the dialog\'s title bar.', ); }
Параметры
Имя | Тип | Описание |
---|---|---|
title | String | Заголовок, отображаемый над диалоговым окном. |
prompt | String | Сообщение, отображаемое в диалоговом окне. |
buttons | Button Set | Кнопка настроена для отображения в диалоговом окне. |
Возвращаться
Button
— кнопка, нажатая пользователем.
create Addon Menu()
Создает конструктор, который можно использовать для вставки подменю в меню «Расширения» редактора. Меню фактически не обновляется до тех пор, пока не будет вызван Menu.addToUi()
. Если скрипт запускается как надстройка, имя подменю соответствует имени надстройки в интернет-магазине; если сценарий привязан к документу напрямую, имя подменю соответствует имени сценария. Дополнительную информацию см. в руководстве по меню .
// Add an item to the Add-on menu, under a sub-menu whose name is set // automatically. function onOpen(e) { SpreadsheetApp.getUi() .createAddonMenu() .addItem('Show', 'showSidebar') .addToUi(); }
Возвращаться
Menu
— новый конструктор меню.
create Menu(caption)
Создает конструктор, который можно использовать для добавления меню в пользовательский интерфейс редактора. На самом деле меню не добавляется до тех пор, пока не будет вызван Menu.addToUi()
. Дополнительную информацию см. в руководстве по меню . Метка меню верхнего уровня должна быть написана в заголовке (все основные слова пишутся с заглавной буквы), а метка подменю должна быть в регистре предложений (только первое слово пишется с заглавной буквы). Если скрипт опубликован как надстройка , параметр caption
игнорируется и меню добавляется как подменю меню «Расширения», что эквивалентно create Addon Menu()
.
// Add a custom menu to the active document, including a separator and a // sub-menu. function onOpen(e) { SpreadsheetApp.getUi() .createMenu('My Menu') .addItem('My menu item', 'myFunction') .addSeparator() .addSubMenu( SpreadsheetApp.getUi() .createMenu('My sub-menu') .addItem('One sub-menu item', 'mySecondFunction') .addItem('Another sub-menu item', 'myThirdFunction'), ) .addToUi(); }
Параметры
Имя | Тип | Описание |
---|---|---|
caption | String | Ярлык меню, в котором все основные слова пишутся с заглавной буквы для меню верхнего уровня или только первое слово — с заглавной буквы для подменю. |
Возвращаться
Menu
— новый конструктор меню.
prompt(prompt)
Открывает диалоговое окно ввода в пользовательском редакторе с заданным сообщением и кнопкой «ОК». Этот метод приостанавливает выполнение серверного сценария, пока диалоговое окно открыто. Сценарий возобновляется после того, как пользователь закрывает диалоговое окно, но соединения Jdbc
и Lock Service
не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
// Display a dialog box with a message, input field, and an "OK" button. The // user can also close the dialog by clicking the close button in its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt('Enter your name:'); // Process the user's response. if (response.getSelectedButton() === ui.Button.OK) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Параметры
Имя | Тип | Описание |
---|---|---|
prompt | String | Сообщение, отображаемое в диалоговом окне. |
Возвращаться
Prompt Response
— представление ответа пользователя.
prompt(prompt, buttons)
Открывает диалоговое окно ввода в пользовательском редакторе с заданным сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного сценария, пока диалоговое окно открыто. Сценарий возобновляется после того, как пользователь закрывает диалоговое окно, но соединения Jdbc
и Lock Service
не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
// Display a dialog box with a message, input field, and "Yes" and "No" buttons. // The user can also close the dialog by clicking the close button in its title // bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO); // Process the user's response. if (response.getSelectedButton() === ui.Button.YES) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else if (response.getSelectedButton() === ui.Button.NO) { Logger.log('The user didn\'t want to provide a name.'); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Параметры
Имя | Тип | Описание |
---|---|---|
prompt | String | Сообщение, отображаемое в диалоговом окне. |
buttons | Button Set | Кнопка настроена для отображения в диалоговом окне. |
Возвращаться
Prompt Response
— представление ответа пользователя.
prompt(title, prompt, buttons)
Открывает диалоговое окно ввода в пользовательском редакторе с заданным заголовком, сообщением и набором кнопок. Этот метод приостанавливает выполнение серверного сценария, пока диалоговое окно открыто. Сценарий возобновляется после того, как пользователь закрывает диалоговое окно, но соединения Jdbc
и Lock Service
не сохраняются во время приостановки. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
// Display a dialog box with a title, message, input field, and "Yes" and "No" // buttons. The user can also close the dialog by clicking the close button in // its title bar. const ui = SpreadsheetApp.getUi(); const response = ui.prompt( 'Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO, ); // Process the user's response. if (response.getSelectedButton() === ui.Button.YES) { Logger.log('The user\'s name is %s.', response.getResponseText()); } else if (response.getSelectedButton() === ui.Button.NO) { Logger.log('The user didn\'t want to provide a name.'); } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); }
Параметры
Имя | Тип | Описание |
---|---|---|
title | String | Заголовок, отображаемый над диалоговым окном. |
prompt | String | Сообщение, отображаемое в диалоговом окне. |
buttons | Button Set | Кнопка настроена для отображения в диалоговом окне. |
Возвращаться
Prompt Response
— представление ответа пользователя.
show Modal Dialog(userInterface, title)
Открывает модальное диалоговое окно в пользовательском редакторе с пользовательским содержимым на стороне клиента. Этот метод не приостанавливает серверный сценарий, пока диалоговое окно открыто. Чтобы взаимодействовать со скриптом на стороне сервера, компонент на стороне клиента должен выполнять асинхронные обратные вызовы, используя API google.script
для Html Service
. Чтобы закрыть диалоговое окно программным способом, вызовите google.script.host.close()
на клиентской стороне веб-приложения Html Service
. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
Модальные диалоги не позволяют пользователю взаимодействовать ни с чем, кроме диалога. Напротив, немодальные диалоговые окна и боковые панели позволяют пользователю взаимодействовать с редактором. Почти во всех случаях модальное диалоговое окно или боковая панель являются лучшим выбором, чем немодальное диалоговое окно.
// Display a modal dialog box with custom HtmlService content. const htmlOutput = HtmlService .createHtmlOutput( '<p>A change of speed, a change of style...</p>', ) .setWidth(250) .setHeight(300); SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');
Параметры
Имя | Тип | Описание |
---|---|---|
user Interface | Object | Html Output представляющий отображаемый интерфейс. |
title | String | Название диалога; переопределяет любой заголовок, установленный путем вызова set Title() в объекте user Interface . |
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/script.container.ui
show Modeless Dialog(userInterface, title)
Открывает немодальное диалоговое окно в пользовательском редакторе с пользовательским содержимым на стороне клиента. Этот метод не приостанавливает серверный сценарий, пока диалоговое окно открыто. Чтобы взаимодействовать со скриптом на стороне сервера, компонент на стороне клиента должен выполнять асинхронные обратные вызовы, используя API google.script
для Html Service
. Чтобы закрыть диалоговое окно программным способом, вызовите google.script.host.close()
на клиентской стороне веб-приложения Html Service
. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
Немодальные диалоги позволяют пользователю взаимодействовать с редактором, находящимся за диалогом. Напротив, модальные диалоги этого не делают. Почти во всех случаях модальное диалоговое окно или боковая панель являются лучшим выбором, чем немодальное диалоговое окно.
// Display a modeless dialog box with custom HtmlService content. const htmlOutput = HtmlService .createHtmlOutput( '<p>A change of speed, a change of style...</p>', ) .setWidth(250) .setHeight(300); SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');
Параметры
Имя | Тип | Описание |
---|---|---|
user Interface | Object | Html Output представляющий отображаемый интерфейс. |
title | String | Название диалога; переопределяет любой заголовок, установленный путем вызова set Title() в объекте user Interface . |
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/script.container.ui
show Sidebar(userInterface)
Открывает боковую панель в пользовательском редакторе с пользовательским контентом на стороне клиента. Этот метод не приостанавливает серверный скрипт, пока открыта боковая панель. Для взаимодействия со скриптом на стороне сервера клиентский компонент должен выполнять асинхронные обратные вызовы с помощью API google.script
для Html Service
. Чтобы программно закрыть боковую панель, вызовите google.script.host.close()
на клиентской стороне веб-приложения Html Service
. Дополнительную информацию см. в руководстве по диалоговым окнам и боковым панелям .
Боковая панель отображается в правой части редактора для пользователей, в средах которых используется язык с письмом слева направо, и в левой части редактора для языков с письмом справа налево. Все боковые панели, отображаемые скриптами, имеют ширину 300 пикселей.
// Display a sidebar with custom HtmlService content. const htmlOutput = HtmlService .createHtmlOutput( '<p>A change of speed, a change of style...</p>', ) .setTitle('My add-on'); SpreadsheetApp.getUi().showSidebar(htmlOutput);
Параметры
Имя | Тип | Описание |
---|---|---|
user Interface | Object | Html Output представляющий отображаемый интерфейс. |
Авторизация
Скрипты, использующие этот метод, требуют авторизации с одной или несколькими из следующих областей :
-
https://www.googleapis.com/auth/script.container.ui