Привет и спасибо заранее!
Я создал боковую панель с htmlService в электронной таблице Google.Панель sidpanel открывается с помощью пользовательского пункта меню и содержит кнопку.Пока все хорошо.Нажатие на кнопку должно запустить функцию сервера.Это тоже работает в целом.Но эта функция должна показывать окно предупреждения или диалоговое окно.Это работает только тогда, когда я запускаю сценарий как владелец листа.Когда я не владелец.Предупреждение или диалоговое окно нигде не отображаются.В обзоре логов я получаю сообщение «скрипт был отменен после слишком долгого ожидания ввода пользователя», после попытки выполнения.Когда я удаляю строку с предупреждением / диалогом, остальная часть кода в функции работает нормально, так что я думаю, это просто вызов интерфейса и некоторые разрешения.
Пример:
https://docs.google.com/spreadsheets/d/1Mv-0YRSJJpwSaRh_xAeZDtVqL-P-e5nS80fUJIq_CJ4/edit?usp=sharing
Есть идеи, как заставить его работать для всех пользователей листа или информации, что этот сценарий больше не работает со скриптами приложения Google (он работал в прошлом)?Цените любые идеи, спасибо!
CODE.GS
function onOpen() {
// Add a custom menu to the spreadsheet.
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('myToDoPanelLabel', 'showTestPanel')
.addToUi();
}
function insert(value) {
SpreadsheetApp.getUi().alert("Message"); //with this line it only works in test sheet but not in the original sheet
var thisID="1Mv-0YRSJJpwSaRh_xAeZDtVqL-P-e5nS80fUJIq_CJ4";
var ss = SpreadsheetApp.openById(thisID).getSheetByName("Tab1");
ss.getRange(1,2).setValue("New Txt");
}
function showTestPanel() {
var template = HtmlService.createTemplateFromFile('panel');
var htmlOutput = template.evaluate()
.setTitle('ToDoPanel');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
PANEL.HTML
<script>
window.mark = function() {
google.script.run.insert();
};
</script>
<button onclick='mark()'>click me</button>