如何显示匿名观看者(或编辑者)的侧边栏? 我尝试使用普通和可安装的触发器:
正常触发:
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遇到错误
即使最终方法运行良好,它也不会自动显示侧栏。
答案 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()" />