Javascript onOpen不执行吗?

Javascript onOpen不执行吗?,javascript,html,google-apps-script,google-sheets,Javascript,Html,Google Apps Script,Google Sheets,嗨,伙计们,每次打开侧边栏时,我都会在我的谷歌工作表上显示侧边栏。我正在使用onOpen函数并调用html页面,但它没有执行。当我手动运行该函数时,它可以工作,但是当打开google工作表时,它不会自行执行。 这是我的密码: .gs code: function onOpen(){ var html = HtmlService.createHtmlOutputFromFile('tipA') .setWidth(300); SpreadsheetApp

嗨,伙计们,每次打开侧边栏时,我都会在我的谷歌工作表上显示侧边栏。我正在使用onOpen函数并调用html页面,但它没有执行。当我手动运行该函数时,它可以工作,但是当打开google工作表时,它不会自行执行。 这是我的密码:

.gs code: 

function onOpen(){
       var html = HtmlService.createHtmlOutputFromFile('tipA')
      .setWidth(300);
       SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showSidebar(html); 
}

.html code: 

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
   <div>
   <p> Some text <p> 
   <p><img src="some link" alt="xyz" width=240 height=210></p>
   </div>
  </body>
</html>
.gs代码:
函数onOpen(){
var html=HtmlService.createHtmlOutputFromFile('tipA')
.设置宽度(300);
SpreadsheetApp.getUi()//或DocumentApp或FormApp。
.showSidebar(html);
}
.html代码:
一些文本


可能用户没有编辑SS的权限?仅当访问您的工作表的用户具有编辑SS的权限时,才会触发onOpen()。

查看此操作是否有效

function showSideBar() {
   SpreadsheetApp.getUi()
    .showSidebar(HtmlService.createTemplateFromFile('tipA')
        .evaluate()
        .setTitle('Some title'));
}
并在此函数上使用可安装的onOpen触发器。
正如前面的海报已经提到的,我也不相信你可以在简单的onOpen触发器(不需要授权)上显示边栏(需要授权)。

简单的触发器打开函数无法打开边栏,因为它在AuthMode.LIMITED上运行。您应该使用在Auth.Mode.FULL上运行的函数来打开边栏,如可安装的触发器

我知道这与附加组件无关,但以下引用适用

注意:在AuthMode.LIMITED中执行时,加载项无法打开侧栏或对话框。您可以使用菜单项打开侧栏和对话框,因为它们在AuthMode.FULL中运行

cannonical引用是

谷歌(相当)最近限制了onOpen触发器的功能。 限制之一是无法显示边栏。 没有真正的解决方法,因为可安装触发器只对创建触发器的用户有效,而对其他用户无效。 相反,每次有人打开文档时,您都会收到错误通知。 我找到的最佳解决方案是创建一个按钮,可以用来打开侧边栏,这比菜单更容易,而且明显更可见。
在这个主题上有一个被引用的问题:

当你说“手动运行函数”时,你的意思是使用浏览器调试器来运行它(比如chrome调试器?)?你能为你想要实现的目标提供更多的上下文吗?@TranTriet通过“手动运行”我的意思是,当我进入工具>脚本编辑器时,我能够选择一个特定的函数并在那里运行它来测试它。我想要实现的是,当最终用户打开我的电子表格时,我想要一个侧边栏显示一些文本。如果我从脚本编辑器手动运行此功能,它就会工作。但是,当我刷新电子表格页面时,侧边栏没有显示。请尝试重命名该函数(请参见更新的答案)并使用可安装的onopen触发器。可安装的onopen触发器能否自动运行?如果我设置它,所有用户都会看到吗?你的浏览器没有禁用JavaScript?