Google App Script中html调用Code.gs函数报错:globalVariables未定义
问题解决:调用Google Apps Script服务端函数报错"globalVariables is not defined"
错误原因
globalVariables是定义在服务端Code.gs里的函数,前端(HTML中的JS)没有这个函数的定义,直接写globalVariables()必然会报未定义错误。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_
相关产品推荐
相关产品推荐

