Поскольку в этом посте речь идет об очень конкретном случае c, который не кажется воспроизводимым, я отвечаю на него, чтобы он не оставался открытым бесконечно долго. В то же время я опубликую отчет о проблеме на трекере.
Вот скрипт, который я использую, чтобы показать проблему. Основная функция (myFunction) сообщает об ошибке при вызове из редактора сценариев, но работает при вызове из меню ...
Это происходит только в Chrome Версия 81.0.4044.122 (Build officiel) (64 бита) на Ma c ОС High Sierra 10.13.6 работает нормально в Safari, Firefox и даже Chrome на Windows 10. (также нормально работает на той же версии Chrome под Ma c ОС 10.10.5 !!)
function myFunction() {
var doc = '<body style="font-family:arial,sans;font-size:12pt">';
doc+='<select id="target" multiple style="font-family:arial,sans;font-size:12pt">';
doc+='<option value="1">choice 1</option><option value="2">choice 2</option><option value="3">choice 3</option></select><br><br>';
doc+='<input type="button" onClick="processJS()" style="background:#BFA;font-size:12pt" value="Validate"/>';
doc+='<script>function processJS(){var e=document.getElementById("target");var values=Array.from(e.selectedOptions).map(option => option.value);';
doc+='console.log(JSON.stringify(values));google.script.run.withFailureHandler(function err(){window.alert("error triggered by withFailureHandler");})';
doc+='.withSuccessHandler(function(msg){ window.alert(msg);google.script.host.close();}).processGSTest(values)};</script>';
doc+='</body>';
var ui = HtmlService.createHtmlOutput(doc).setWidth(500).setHeight(250);
SpreadsheetApp.getUi().showModelessDialog(ui, "test");
}
function processGSTest(values){
Logger.log(JSON.stringify(values));
return "processGSTest ok";
}
function onOpen(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "test", functionName: "myFunction"}]
ss.addMenu("test",menuEntries);
}
Я создал общую таблицу для всех, кто захочет поиграть с ней (только для чтения, сделайте копию на использование)