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

如何在GAS项目中通过HTML/JavaScript调用库内的Google Apps Script函数?

解决Google Apps Script中通过HTML调用库函数的问题

问题说明

在Google Apps Script中,本地脚本内的函数可通过google.script.run从HTML正常调用,但直接尝试调用库中的函数(如google.script.run.MyLibrary.setSelectOptions())时,会抛出错误:

Uncaught TypeError: Cannot read properties of undefined (reading 'setSelectOptions')

核心原因

google.script.run客户端API仅能直接访问当前脚本项目中定义的顶层函数,无法直接访问已添加库的命名空间成员,必须通过本地脚本做中转。

解决步骤

1. 在绑定脚本中添加桥接函数

在你的绑定脚本(Code.gs)里创建一个本地函数,内部调用库的目标函数并返回结果:

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Test');
}

// 桥接函数:中转调用库的目标函数
function proxySetSelectOptions() {
  // 确保MyLibrary是你添加库时设置的正确标识符
  return MyLibrary.setSelectOptions();
}

2. 修改HTML中的调用代码

将HTML里的google.script.run调用指向这个本地桥接函数:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      function errorFunction(errorMsg) {
        console.log("ERROR - Check it!");
      }

      function successFunction(arrayText) {
        console.log("SUCCESS: " + arrayText);
        return arrayText;
      }
      // 调用本地桥接函数,而非直接访问库
      google.script.run.withSuccessHandler(successFunction).proxySetSelectOptions();
    </script>
  </head>
  <body>
    
  </body>
</html>

关键注意事项

  • 库中的目标函数必须是公开可见的:Google Apps Script规定,库中只有首字母大写的函数才能被外部脚本调用。如果你的库函数是setSelectOptions(小写开头),需要修改为SetSelectOptions,并同步更新桥接函数中的调用代码。
  • 确认绑定脚本已正确添加库,且库的标识符(如MyLibrary)与代码中使用的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:43:20