【问题标题】:Showing sidebar for viewers为观众显示侧边栏
【发布时间】:2016-04-12 20:57:34
【问题描述】:

如何为匿名查看者(或编辑)显示侧边栏? 我尝试使用普通且可安装的触发器:

普通触发器:

function onOpen(){
  var html = HtmlService.createHtmlOutputFromFile('Page')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME)
  .setTitle('My custom sidebar')
  .setWidth(300);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
  .showSidebar(html);
}

这适用于电子表格的所有者,但不适用于匿名用户,尽管知道链接的任何人都有编辑权限。

可安装的触发器:

function showSidebar(){
  ... the same body of the previous 'onOpen' function
}

然后,我将函数 showSidebar 绑定到一个可安装的触发器,该触发器在电子表格打开时被调用。

这不适用于所有者或匿名用户!

最后,我尝试将函数 showSidebar 绑定到插入电子表格的图像,但不适用于匿名用户。它显示一条消息,说

脚本 showSidebar 遇到错误

即使最终方法运行良好,它也不会自动显示侧边栏。

【问题讨论】:

  • 添加一个您已经尝试过的示例,包括代码和所发生情况的描述。
  • 添加了更多细节...
  • 有一个可能相关的未解决问题:Issue: 5747 Trigger for anonymous user / script for anonymous user
  • 是的 Rubén,这两个问题有相似之处。奇怪的是,尽管许多用户抱怨,谷歌还没有修复它。它最终从我的电子表格中完全删除了侧边栏!
  • 我只是试图重现该问题。由 On Open 可安装触发器调用的 showSideBar 对于所有者和之前授权该脚本的编辑器来说工作正常。

标签: google-apps-script triggers


【解决方案1】:

在我看来,代码与https://developers.google.com/apps-script/guides/dialogs#custom_sidebars 几乎相同。它有两个文件,Code.gs 和 Page.html。由于 OP 没有提到 Page.html 的代码,因此很可能在他的尝试中丢失了它,因为如果 Page.html 文件的代码包含并且文件已打开,则使用与 OP 相同的代码工作得很好由编辑的所有者。

关于以匿名用户身份运行,当电子表格由具有查看或编辑权限的匿名用户打开时,onOpen 不会运行。 Google Apps 问题跟踪器中有一份与此相关的报告

Issue: 5747 Trigger for anonymous user / script for anonymous user


更新:

+Samanthaanswer 到 Google 文档帮助论坛中的类似帖子

为了让脚本在 Google 表格上运行,用户必须登录 并具有“可以编辑”权限。这意味着匿名用户将 无法运行脚本。

如果您希望将此功能添加到脚本中,我 建议导航到 Google Developers' Apps Script support 页面并按“发送反馈”按钮。


第一个链接的代码

代码.gs

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('Custom Menu')
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('Page')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('My custom sidebar')
      .setWidth(300);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showSidebar(html);

页面.html

Hello, world! <input type="button" value="Close" onclick="google.script.host.close()" />

【讨论】:

  • 是的,代码相同。我从 developer.google.com 复制了它。你提到的问题说明了一切。我给它加了星标,以便谷歌可以给予它更多的关注。但这意味着匿名用户永远不会看到侧边栏,对吧?
  • never 是一个强词,尤其是在应用粗体格式的情况下。目前我不知道如何在 Google 电子表格中向匿名用户显示侧边栏。
  • 现在我们可以放心地说“从不”:)
猜你喜欢
  • 2020-05-27
  • 1970-01-01
  • 2023-01-10
  • 2019-10-13
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多