首页 文章

Google App Script Web App互动

提问于
浏览
0

我正在创建一个与电子表格进行通信的Web应用程序 . 问题是,从HTML文件中,我使用 doGet() 和一个名为 doSomething() 的函数调用 .gs 文件中的函数 . 当我两次调用 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 .

1 回答

  • 2

    简答

    每次从客户端调用服务器端函数时,Google Apps脚本Web IDE上的日志都会被清除,因为google.script.run会进行异步调用,因为它们是异步的,我们无法确定我们将在日志 . 如果要保留日志,请使用 console.log 而不是con Logger.log .

    测试

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

    lolcatz.html

    <!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

    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 App后

    执行记录

    从视图>执行记录

    [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秒]

    日志

    从视图>日志

    [18-03-28 17:36:00:412 CST]我再次被召唤!

    通过console.log更改Logger.log

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

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

    2018-03-28 17:43:50.859 CST我被叫了! 2018-03-28 17:43:51.073 CST我被叫到了! 2018-03-28 17:43:51.233 CST我再次被召唤!

相关问题