首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google App脚本Web App交互

Google App脚本Web App交互
EN

Stack Overflow用户
提问于 2018-03-29 06:05:19
回答 1查看 282关注 0票数 0

我正在创建一个web应用程序来与电子表格通信。问题是,在HTML文件中,我使用doGet()和一个名为doSomething()的函数调用了.gs文件中的函数。当我对doSomething调用两次时,它只执行一次。

我的HTML文件(称为lolcatz.html)

代码语言:javascript
复制
<!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):

代码语言:javascript
复制
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();
}

日志输出:

代码语言:javascript
复制
[18-03-28 14:55:00:032 PDT] I was called!

当我进入Inspect Element的JavaScript控制台时,console.log命令执行得很好。

我完全在执行限制之内,并且启用了Google App Script API和Google Sheets API。

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 07:33:58

简短的回答

每次从客户端调用服务器端函数时,Google Apps Script web IDE上的日志都会被清除,因为google.script.run会进行异步调用,而且因为它们是异步的,所以我们不能确定我们将在日志中看到什么。如果你想保留日志,那就用console.log代替Logger.log

测试

要测试客户端代码如何与使用Logger的服务器端代码交互,请尝试执行以下操作:

lolcatz.html

代码语言:javascript
复制
<!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>

Code.gs

代码语言:javascript
复制
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);
}

打开Web应用程序后

执行记录

从视图>执行脚本

18-03-28 17:36:00:403 CST开始执行

18-03-28 17:36:00:412cst Logger.log([我又被调用了!,[]]) 0秒执行成功0.002秒总运行时

日志

从视图>日志

18-03-28 17:36:00:412 CST I再次被呼叫!

通过console.log更改Logger.log

通过console.log更改Logger.log后,再次打开web应用程序(或刷新选项卡)

从视图>堆栈驱动程序日志记录

2018-03-28 17:43:50.859 CST I被调用!

2018年-03-28 17:43:51.073 CST我被召唤了!

2018-03-28 17:43:51.233 CST I再次被呼叫!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49544931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档