如果脚本是从 Google 表格、Google 文档、Google 幻灯片或 Google 表单文件创建的,而不是作为独立脚本创建的,则该脚本会绑定到相应文件。绑定脚本所附加到的文件称为“容器”。绑定脚本的行为通常与独立脚本类似,但它们不会显示在 Google 云端硬盘中,无法从所绑定的文件中分离,并且比父文件多了一些特殊权限。
脚本也可以绑定到 Google 协作平台,但这些脚本几乎总是部署为网络应用。绑定到 Google 表格、Google 文档、Google 幻灯片或 Google 表单的脚本也可以成为 Web 应用,不过这种情况并不常见。
绑定脚本实际上是未发布的 Google Workspace 插件,仅适用于它们所绑定的文件。
创建绑定脚本
您可以在 Google 文档、表格、幻灯片和表单中创建绑定脚本。
Google 文档、表格或幻灯片
如需在 Google 文档、表格或幻灯片中创建绑定脚本,请在 Google 文档中打开文档、在 Google 表格中打开电子表格或在 Google 幻灯片中打开演示文稿,然后依次点击扩展 > Apps 脚本。如需日后重新打开脚本,请执行相同的操作,或从 Apps 脚本信息中心打开脚本。
表单
如需在 Google 表单中创建绑定脚本,请打开相应表单,然后依次点击更多图标 > 脚本编辑器。如需日后重新打开该脚本,请执行相同的操作,或从 Apps 脚本信息中心打开该脚本。
clasp 工具无法创建绑定脚本,但可以克隆和修改绑定脚本。
特殊方法
绑定脚本可以调用一些独立脚本无法调用的方法:
getActiveSpreadsheet、getActiveDocument、getActivePresentation和getActiveForm允许绑定脚本引用其父文件,而无需引用该文件的 ID。getUi允许绑定脚本访问其父文件的界面,以添加自定义菜单、对话框和边栏。- 在 Google 表格中,
getActiveSheet、getActiveRange和getActiveCell可让脚本确定用户的当前工作表、所选单元格范围或所选的单个单元格。setActiveSheet和setActiveRange可让脚本更改这些选择。 - 在 Google 文档中,
getActiveTab、getCursor和getSelection可让脚本确定用户的当前标签页、光标位置或所选文本。setActiveTab、setCursor和setSelection,让脚本更改这些选择。
如需了解详情,请参阅扩展 Google 表格指南或扩展 Google 文档指南。
这些方法仅适用于从脚本编辑器、菜单项、对话框、边栏或触发器运行的绑定脚本。当绑定脚本作为 Web 应用运行或使用 Google Apps 脚本 API 运行时,这些方法不可用。
自定义菜单、对话框和边栏
绑定脚本可以通过添加自定义菜单和对话框或边栏来定制 Google 表格、文档和表单。脚本只能与打开文件的当前实例的界面进行交互。绑定到某个文档的脚本无法影响另一个文档的用户界面。
触发器
绑定脚本可以使用简单触发器,例如特殊的 onOpen 函数,该函数会在具有编辑权限的用户打开文件时自动运行。与所有类型的脚本一样,它们也可以使用可安装的触发器。
自定义函数
自定义函数是指绑定到 Google 表格的脚本中的函数,您可以使用 =myFunctionName() 语法直接从单元格中调用该函数。自定义函数与 Google 表格中数百个内置函数(例如 AVERAGE 或 SUM)类似,只不过您需要定义自定义函数的行为。
对绑定脚本的访问权限
只有拥有容器修改权限的用户才能运行其绑定脚本。 只有查看权限的协作者无法打开脚本编辑器。如果他们复制容器文件,则会成为该副本的所有者,并且可以查看和运行脚本的副本。
如需了解如何共享脚本的容器文件,请参阅共享云端硬盘中的文件。
所有容器绑定脚本都使用为容器文件定义的相同的所有者、查看者和编辑权限访问权限列表。无论新脚本项目是谁创建的,容器所有者都会获得该项目的所有权。