Вызов оповещения (или других диалоговых окон) из HtmlService не является владельцем листа - PullRequest
0 голосов
/ 19 апреля 2019

Привет и спасибо заранее!

Я создал боковую панель с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...