显示观看者的侧边栏

时间:2016-04-12 20:57:34

标签: google-apps-script

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

正常触发:

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遇到错误

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

1 个答案:

答案 0 :(得分:1)

我认为代码几乎与https://developers.google.com/apps-script/guides/dialogs#custom_sidebars相同。它有两个文件,Code.gs和Page.html。由于OP没有提到Page.html的代码,因此很可能在尝试使用相同的代码时,如果Page.html文件的代码是包含,文件由编辑的所有者打开。

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

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

<小时/> UPDATE:

answer+Samantha到Google文档帮助论坛中的类似主题

  

要使脚本在Google表格上运行,必须记录用户   in和has&34;可以编辑&#34;权利。这意味着匿名用户会   无法运行脚本。

     

如果您希望将此功能添加到脚本,我   建议导航到Google Developers&#39; Apps脚本支持   页面并按下&#34;发送反馈&#34;按钮。

<小时/> 来自第一个链接的代码

Code.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);

page.html中

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