我正在创建一个与电子表格进行通信的网络应用。问题是,从HTML文件中,我使用.gs
调用doGet()
文件中的函数和名为doSomething()
的函数。当我呼叫doSomething
两次时,它只执行一次。
我的HTML文件(名为lolcatz.html
)
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
google.script.run.doSomething();
google.script.run.doSomething2();
google.script.run.doSomething();
console.log("Hi");
</script>
</body>
</html>
我的Google App脚本文件(名为Code.gs
):
function doGet() {
var page = HtmlService.createHtmlOutputFromFile('lolcatz.html');
page.setTitle("Panther Time");
return page;
}
function doSomething() {
Logger.log('I was called!');
}
function doSomething2() {
Logger.log('I was called! Again!');
}
function doStuff() {
doSomething();
doSomething2();
}
日志输出:
[18-03-28 14:55:00:032 PDT] I was called!
当我转到Inspect Element的JavaScript控制台时,console.log
命令执行正常。
我完全符合执行限制,并启用了Google App Script API和Google表格API。
答案 0 :(得分:2)
每次从客户端调用服务器端函数时,Google Apps脚本Web IDE上的日志都会被清除,因为google.script.run会进行异步调用,因为它们是异步的,所以我们无法确定在日志上看到。如果您想保留日志,请使用console.log
代替con Logger.log
。
要测试客户端代码如何与使用Logger的服务器端代码进行交互,请尝试以下方法:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
google.script.run.doSomething('I was called!');
google.script.run.doSomething2('I was called to!');
google.script.run.doSomething('I was called again!');
console.log("Hi");
</script>
</body>
</html>
function doGet() {
var page = HtmlService.createHtmlOutputFromFile('lolcatz.html');
page.setTitle("Panther Time");
return page;
}
function doSomething(message) {
Logger.log(message);
}
function doSomething2(message) {
Logger.log(message);
}
从视图&gt;执行记录
[18-03-28 17:36:00:403 CST]开始执行
[18-03-28 17:36:00:412 CST] Logger.log([我再次被召唤!,[]])[0秒]
[18-03-28 17:36:00:414 CST]执行成功[总运行时间为0.002秒]
从视图&gt;日志
[18-03-28 17:36:00:412 CST]我再次被召唤!
通过console.log更改Logger.log后,再次打开Web应用程序(或刷新选项卡)
从视图&gt;堆栈驱动程序日志记录
2018-03-28 17:43:50.859 CST我被叫了!
2018-03-28 17:43:51.073 CST我被叫到了!
2018-03-28 17:43:51.233 CST我再次被召唤!