Всякий раз, когда я пытаюсь отобразить диалоговое окно пользовательского интерфейса (например, msgBox или alert ), оно отлично работает, когда вызывается через пункт меню (например, из Google Sheets), но оно вешает мой скриптесли я попытаюсь вызвать его из редактора скриптов Google Apps (например, через функцию «Выполнить»> «Выполнить»).
Мое предположениеэто потому, что редактор скриптов Google Apps не может отображать никакой пользовательский интерфейс.Чтобы решить эту проблему, я хотел бы создать функцию-обертку, которая проверяет, как выполнялся сценарий, и не отображать пользовательский интерфейс в зависимости от источника.
На экране «Выполнения» есть понятие «Тип» (редактор, автономный), Триггер):
Это заставляет меня думать, что есть способ получить этот тип в коде.
Psuedo-код того, как может выглядеть функция:
function showMessage(message) {
var scriptSource = ???;
if (scriptSource === "Standalone") {
Browser.msgBox(message);
} else {
console.log(message);
}
}
Как мне получить scriptSource
?
Ближайшая вещь, которую я могу найти - TriggerSource , но в нем отсутствуют значения перечисления «Редактор» и «Триггер».Кроме того, это свойство доступно только для Trigger .Я не знаю, как получить доступ к текущему триггеру.Насколько я понимаю, это доступно только через объект события (например, через triggerUid
) для функций, действующих как триггеры.Этот метод, который я запускаю в редакторе сценариев приложений, не имеет доступа к объекту события.