HTML-服务页面调用带有对话框的服务器端Apps脚本函数
HTML-service pages to call server-side Apps Script functions with dialog box
我尝试遵循 Client-to-Server Communication on Google Scripts, using unlike in the model, a 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一样。
运行 然而,此脚本并未按预期调用记录器。我做错了吗?
这已被报告为 Issue 5177,请为其加注星标以进行更新并引起对问题的关注。
有些情况下我们不应该期望 Logger 运行,例如当使用基于时间的触发器功能时,因为执行实例和调试器实例之间没有关联来记录日志。
然而,这里不是这种情况。我们应该有能力在这里使用记录器,但它不可靠。日志 do 出现,有时 :
由于这种行为,我使用 BetterLog library to record logs to a spreadsheet when debugging. (You can even invoke it via google.script.run
to log to the spreadsheet from within your client-side JavaScript. See more about that in How do I run Server-side functions using HtmlService。)
我尝试遵循 Client-to-Server Communication on Google Scripts, using unlike in the model, a 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一样。
运行 然而,此脚本并未按预期调用记录器。我做错了吗?
这已被报告为 Issue 5177,请为其加注星标以进行更新并引起对问题的关注。
有些情况下我们不应该期望 Logger 运行,例如当使用基于时间的触发器功能时,因为执行实例和调试器实例之间没有关联来记录日志。
然而,这里不是这种情况。我们应该有能力在这里使用记录器,但它不可靠。日志 do 出现,有时 :
由于这种行为,我使用 BetterLog library to record logs to a spreadsheet when debugging. (You can even invoke it via google.script.run
to log to the spreadsheet from within your client-side JavaScript. See more about that in How do I run Server-side functions using HtmlService。)