1

这可能是一个愚蠢的新手问题,但我有一个电子表格,我想通过给匿名用户提供 URL 来提供给他们。经过大量的拉扯,我现在想出了细胞保护雨舞,但我还有另一个问题。

原始工作表的 onOpen 对我来说很好,并创建了一个自定义菜单,但是当我共享工作表并以匿名用户身份打开它时,没有菜单出现。好吧,我想,这不是谷歌的东西第一次不像宣传的那样工作。因此,我继续创建了一个按钮来执行缺少的菜单无法执行的操作。相同的故事。按钮显示给匿名用户,但它已经死了。点击时无操作。

似乎不可能为匿名用户禁用 javascript,但这就是它的样子。有什么建议么?

4

1 回答 1

1

我认为你是对的 user3550481。我复制了你上面描述的内容并制作了这个电子表格来测试你报告的内容。它有一个“我的菜单”菜单,应该出现在打​​开时,以及一个带有分配给相同功能的脚本的按钮。共享设置为“任何知道链接的人”还是“公开”都没有任何区别。我什至尝试将脚本发布为任何人都可以访问的网络应用程序,甚至是匿名的——我没想到这会产生任何影响,因为它显然没有 doGet 函数——但它没有。

当我以匿名用户身份进行测试时,即未登录任何 Google 帐户时,“我的菜单”菜单没有出现,并且如您所说,该按钮已失效。

一旦我登录了一个谷歌帐户,两者都有效,但有趣的是,修订历史显示结果是匿名的。

我很想看看是否有人提供比向问题跟踪器报告更好的解决方案——如果你不提供,我可能会。同时,每当您与您的用户分享链接时,最好的办法是解释他们需要登录 Google 帐户才能正常工作——毕竟这是免费的。

电子表格中使用的脚本:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var myMenu = [ {name: 'My Menu', functionName: 'myMenu'}];
  ss.addMenu('My Menu', myMenu);
}

function myMenu() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName('Sheet1');
  var lr = sh.getLastRow()+1;
  sh.getRange(lr, 1).setValue('Clicking My Menu worked!');
}
于 2014-04-19T19:36:15.210 回答