在 google apps script 的 html 模态对话框中,因语法错误(如箭头函数书写不规范)导致 js 函数未被正确解析和定义,从而触发“function not defined”报错。修复该语法问题即可恢复事件绑定与脚本执行。
在 Apps Script 的客户端 HTML 中,JavaScript 代码需被浏览器完整解析后,才能响应 onchange、onclick 等内联事件。你遇到的 addRemoveCal is not defined 错误,表面是函数未声明,实则根源在于 HTML 解析提前中断——浏览器在加载
关键问题定位在 TemplateSelectJS.html 中的 runFunctionList() 函数:
function runFunctionList(){
functionList.forEach(func = >google.script.run.func()); // ❌ 错误:箭头函数含非法空格
google.script.host.close();
}此处 func = > 是非法语法(ECMAScript 不允许 = 和 > 之间存在空格),浏览器解析失败并抛出:
Uncaught SyntaxError: Unexpected token '>' (at userCodeAppPanel:20:33)
该错
误会阻断整个
✅ 正确写法应为标准箭头函数语法(无空格):
⚠️ 注意事项:
总结:Apps Script HTML 中的“函数未定义”问题,90% 源于客户端 JS 语法错误引发的解析中断。务必检查控制台报错行号,优先验证箭头函数、括号匹配、分号缺失、模板字符串等常见陷阱。修复语法后,函数将正常注册,事件响应与 google.script.run 调用即可顺利执行。