google-apps-script - Google Apps 脚本中的警报对话框

标签 google-apps-script

据我了解,Google Apps Script (GAS) 提供了一个弹出对话框,对应于客户端 JS 中的警报对话框(参见:http://www.mousewhisperer.co.uk/drivebunny/message-dialogs-in-apps-script/)为了熟悉这个对话框,我准备了测试代码如下所示:

代码.gs:

var validate=function() {
   Browser.msgBox('Hello, world!', Browser.Buttons.OK);  // See: http://www.mousewhisperer.co.uk/drivebunny/message-dialogs-in-apps-script/
}
function doGet() {
      return HtmlService.createTemplateFromFile('index').evaluate().setTitle('Test').setSandboxMode(HtmlService.SandboxMode.IFRAME)
    }

索引.html:
<div>
 <form>
  <input type="button" value="Click Me" onclick="validate">
 </form>
</div>

当我单击“单击我”按钮时,没有看到弹出对话框,没有任何 react ,并且在 JS 控制台中报告错误,提示未定义“验证”。谁能告诉我我错过了什么?感谢您提供任何意见。
 ... doug

最佳答案

Browser.msgBox()从服务器运行。你可能已经知道了。但是你不是在调用服务器。您的 onclick属性需要有 google.script.run.serverFunctionName();调用它。或者,如下图,输入 google.script.run调用一个单独的函数。

HTML代码:

<div>
 <form>
  <input type="button" value="Click Me" onclick="validate()">
 </form>
</div>

<script>
  window.validate = function() {
    google.script.run.validate();
  };
</script>

代码.gs
function validate() {
  Logger.log('It ran!');
  Browser.msgBox('Hello, world!', Browser.Buttons.OK);  // See: http://www.mousewhisperer.co.uk/drivebunny/message-dialogs-in-apps-script/
}
function doGet() {
      return HtmlService.createTemplateFromFile('index').evaluate().setTitle('Test').setSandboxMode(HtmlService.SandboxMode.IFRAME)
    }

关于google-apps-script - Google Apps 脚本中的警报对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31573462/

相关文章:

javascript - Google Apps 脚本 - 类型错误 : Cannot read property "0" from undefined

javascript - 为什么删除一行会影响下一行?

google-apps-script - 在 Gmail Addon 上获取草稿正文

javascript - 如何通过 Google 表格中的键值返回匹配的行数据

javascript - 在 Google Scripts 中将 JS 变量传递给 HTML

email - 设置脚本以在电子邮件通知中包含 google docs 表单数据

webpack - 使功能可用于谷歌应用程序脚本,从 webpack 模块

google-apps-script - setNamedRange() 在电子表格容器之外?

javascript - 如何通过 Google 表单审查问题的答案?

json - 从 Node REST 客户端点击 Google Apps 脚本时出现奇怪的错误