据我了解,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/