Экземпляр среды пользовательского интерфейса для приложения 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