【问题标题】:HTML-service pages to call server-side Apps Script functions with dialog box用于调用服务器端应用程序脚本功能的 HTML 服务页面和对话框
【发布时间】:2015-06-24 09:00:55
【问题描述】:

我尝试遵循Client-to-Server Communication on Google Scripts 的模型,使用与模型中不同的modal dialog

型号代码:

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function doSomething() {
  Logger.log('I was called!');
}

模型 HTML:

<script>
  google.script.run.doSomething();
</script>

我的代码:

function openDialog() {
  var html = HtmlService.createHtmlOutputFromFile('Index')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  SpreadsheetApp.getUi()
      .showModalDialog(html, 'My Dialog');
}

function doSomething() {
  Logger.log('I was called!');
}

我的 HTML 与模型 HTML 相同。

但是,运行此脚本不会按预期调用 Logger。我做错了吗?

【问题讨论】:

  • 我记得,HTML 不会触发 Logger,尝试返回一个值,然后使用控制台记录它。

标签: html google-apps-script client-server


【解决方案1】:

这已被报告为Issue 5177,为它加注星标以获取更新并引起对该问题的关注。

在某些情况下,我们不应该期望 Logger 运行,例如在使用 Time-based Trigger 函数时,因为执行实例和调试器实例之间没有关联来记录日志。

但是,这里的情况并非如此。我们应该有能力在这里使用记录器,但它不可靠。日志确实会出现,有时

由于这种行为,我在调试时使用BetterLog library 将日志记录到电子表格中。 (您甚至可以通过google.script.run 调用它,从客户端JavaScript 中登录到电子表格。在How do I run Server-side functions using HtmlService 中查看更多信息。)

【讨论】:

猜你喜欢
  • 2010-09-27
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多