Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 调用SpreadsheetApp.getUi().alert();通过google.script.run停止服务器功能运行_Google Apps Script - Fatal编程技术网

Google apps script 调用SpreadsheetApp.getUi().alert();通过google.script.run停止服务器功能运行

Google apps script 调用SpreadsheetApp.getUi().alert();通过google.script.run停止服务器功能运行,google-apps-script,Google Apps Script,大家好,提前谢谢 我用一个按钮在谷歌电子表格中创建了一个侧面板。单击该按钮将运行服务器功能。此函数用于显示alertbox并将文本插入特定单元格 工作示例: 现在是棘手的部分: 我在另一张表格中使用了此代码,我无法共享,因为它包含机密数据。在本表中,该函数仅在我删除或//停用带有警报调用的行时运行 我知道发现这样的错误有点难,但也许有人知道它可能是什么 代码.GS function onOpen() { // Add a custom menu to the spreadsheet. S

大家好,提前谢谢

我用一个按钮在谷歌电子表格中创建了一个侧面板。单击该按钮将运行服务器功能。此函数用于显示alertbox并将文本插入特定单元格

工作示例:

现在是棘手的部分: 我在另一张表格中使用了此代码,我无法共享,因为它包含机密数据。在本表中,该函数仅在我删除或//停用带有警报调用的行时运行

我知道发现这样的错误有点难,但也许有人知道它可能是什么

代码.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>
编辑:问题的核心是没有出现对话框!通过警报调用,它将停止代码。等待用户响应时,可以在Scrip Logging timeout中看到超时。使用下面建议的解决方案,它将执行,但仍不会显示自定义对话框。 这是权限问题吗?

嗯,阻止服务器执行。引述:

在用户编辑器中打开带有给定消息和“确定”按钮的对话框。此方法在对话框打开时挂起服务器端脚本。在用户解除对话框后,脚本将继续,但Jdbc连接和LockService锁不会在整个暂停期间保持

如中所示,您可以使用自定义对话框:

对话框打开时,自定义对话框不会挂起服务器端脚本。客户端组件可以使用用于HTML服务接口的google.script API或用于UI服务接口的服务器处理程序对服务器端脚本进行异步调用


因此,创建自定义对话框可能会解决您的问题。

感谢Adelin的提示!这并不能解决整个问题,而是部分问题,让我更接近问题所在。尝试您的建议时,自定义对话框没有显示,但函数的其余部分已执行。所以我怀疑这与显示对话框的权限有关,我还没有发现如何授予它们,因为你不能从编辑器中调用对话框。。。