onOpen不执行?

时间:2018-05-17 04:21:56

标签: javascript html google-apps-script google-sheets

大家好我试图在每次打开时在我的Google表格上显示侧边栏。我正在使用onOpen函数并调用html页面,但它没有执行。当我手动运行该功能时,它可以工作,但是当打开谷歌表时它不会自己执行。 这是我的代码:

.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>

4 个答案:

答案 0 :(得分:0)

也许用户没有权限编辑SS? Google Developers说onOpen()只有在访问您工作表的用户有权编辑SS时才会触发。

答案 1 :(得分:0)

看看是否有效

function showSideBar() {
   SpreadsheetApp.getUi()
    .showSidebar(HtmlService.createTemplateFromFile('tipA')
        .evaluate()
        .setTitle('Some title'));
}

并在此功能上使用可安装的onOpen触发器。 正如前面提到过的海报,我也不相信你可以在简单的onOpen触发器上显示侧边栏(需要授权)(不需要授权)。

答案 2 :(得分:0)

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

我知道这不是附加组件,但以下引用适用

来自https://developers.google.com/apps-script/add-ons/lifecycle#authorization_modes

  

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

cannonical引用

答案 3 :(得分:0)

Google最近(相当)限制了onOpen触发器的功能。 其中一个限制是不可能显示侧边栏。 没有真正的解决方法,因为可安装触发器仅适用于创建触发器的用户,而不适用于其他用户。 相反,每次有人打开文档时,您都会收到错误通知。 我找到的最佳解决方案是创建一个可用于打开侧边栏的按钮,这比菜单更容易,而且显然更加明显。 该主题有一个引用问题:https://issuetracker.google.com/issues/69238694