首页 > 解决方案 > 多个用户使用 Google 电子表格插件时的问题

问题描述

在为 Google 表格自行开发的插件中,添加了从侧栏中的 JavaScript 音频播放器播放声音文件的功能,具体取决于表格中的选择。有关代码本身,请参见此处

当用户从 Marktetplace 安装插件时,插件一次只能对一个用户正常工作:当所选行更改时,通过右侧的播放器自动播放相应的声音文件(自动启动)-手边。

但是,当多个用户使用此插件时,各个浏览器中的音频播放器似乎相互干扰,使得音频文件被中断并重新开始,直到再次被中断,因此,以一个循环结束中断音频文件。因此,问题似乎是由多个用户运行加载项会永久中断并重新启动脚本。

我完全不知道从哪里开始调查这个错误。我发现,在多用户模式下,传递声音文件的 PHP 脚本会一遍又一遍地启动。

在单用户模式下,这个脚本只被调用一次。

可在此处访问可重现的示例;附加组件 > “播放音频”(需要 Google 帐户)。要重现错误,必须打开工作表两次(例如在两个浏览器中)。

标签: javascriptgoogle-apps-scriptgoogle-sheetsadd-on

解决方案


在表格中选择下一行时,查看电子表格侧边栏中接受的更新值答案的代码,问题是由于使用脚本属性存储引起的,因为任何打开侧边栏的用户都在覆盖脚本属性。

解决方案是使用用户属性存储。换句话说,

代替

PropertiesService.getScriptProperties()

利用

PropertiesService.getUserProperties();

资源


推荐阅读