You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google App Script中html调用Code.gs函数报错:globalVariables未定义

问题解决:调用Google Apps Script服务端函数报错"globalVariables is not defined"

错误原因

  1. globalVariables是定义在服务端Code.gs里的函数,前端(HTML中的JS)没有这个函数的定义,直接写globalVariables()必然会报未定义错误。
  2. google.script.run是异步调用服务端函数的API,不能像同步函数那样直接获取返回值,必须通过回调函数处理结果。

修正方案

保持Code.gs的代码不变,修改前端javaScript.html中的调用逻辑,使用google.script.run的回调函数接收服务端返回的结果:

Code.gs(无需修改)

function globalVariables(){ 
  var varArray = {
    // 其他属性
    isEditor: true                                              
  };
  return varArray;
}

javaScript.html(修正后的调用代码)

function createTable(dataArray) {
  google.script.run
    // 成功获取服务端返回值时的回调
    .withSuccessHandler(function(result) {
      // result就是服务端globalVariables函数返回的varArray对象
      var isEditor = result.isEditor;

      if(isEditor === true){
        // 在这里编写你的业务代码
        console.log("当前用户拥有编辑器权限");
      }
    })
    // 调用失败时的错误处理(可选但建议加上)
    .withFailureHandler(function(error) {
      console.error("调用服务端函数出错:", error);
    })
    // 触发调用服务端的globalVariables函数
    .globalVariables();
}

关键说明

  • 所有依赖服务端返回值的代码必须放在withSuccessHandler的回调函数内部,因为google.script.run是异步执行的,回调函数会在服务端返回结果后才触发。
  • 永远不要直接在前端JS中调用服务端函数名(比如globalVariables()),必须通过google.script.run来触发服务端执行,并通过回调获取结果。

内容的提问来源于stack exchange,提问作者Potatou_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:10:20