GAS .withSuccessHandler失败并出错

时间:2017-02-02 16:41:40

标签: javascript google-apps-script

我编写了一个Google表格插件,它使用模态对话框作为界面。我无法运行成功处理程序,因此我创建了一个用于测试的框架界面,并且遇到了同样的问题。

每当服务器端函数返回时,成功处理程序中指定的函数应该运行。相反,它会抛出错误“Untaught TypeError:a is not a function”。我可以通过一个按钮手动触发为处理程序指定的功能(仅为演示目的而添加。代码如下:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>

    function success(){
      document.getElementById("waitMessage").innerHTML = "TEST";
    }

    function testFunc(){
     google.script.run.withSuccessHandler("success").serverSideFunc();
    }

    </script>
  </head>
  <body>
    <p>
      Click the button to close the window
    </p>
    <form>
       //Doesn't work
     <input type="button" name="test" value="Server-side test" onclick="testFunc()">
       //Works
     <input type="button" name="test-client" value="Client-side test" onclick="success()">
    </form>
     <div id="waitMessage">
     <p></p>
     </div>
  </body>
</html>

.gs脚本文件如下:

function serverSideFunc(){
  Logger.log("");
}

如您所见,脚本文件只是一个虚拟函数,旨在触发成功处理程序。

这里发生了什么?我错过了一些简单的东西吗?

1 个答案:

答案 0 :(得分:2)

您没有返回错误。您不要在函数名称周围加上引号来运行:

function testFunc(){
 google.script.run.withSuccessHandler(success).serverSideFunc();
}