onOpen не выполняется? - PullRequest
0 голосов
/ 17 мая 2018

Привет, ребята, я пытаюсь отображать боковую панель на моих листах Google каждый раз, когда она открывается.Я использую функцию 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>

Ответы [ 4 ]

0 голосов
/ 22 мая 2018

Google (совсем) недавно ограничил функциональность триггеров onOpen. Одним из сдерживающих факторов является невозможность показать боковую панель. Реального обходного пути нет, поскольку устанавливаемые триггеры будут работать только для пользователя, который его создал, а не для других пользователей. Вместо этого вы будете получать уведомление об ошибке каждый раз, когда кто-то открывает документ. Лучшее решение, которое я нашел, - это создать кнопку, которую можно использовать для открытия боковой панели, это проще, чем меню и, очевидно, более заметно. На эту тему существует ссылка: https://issuetracker.google.com/issues/69238694

0 голосов
/ 17 мая 2018

Посмотрите, работает ли это

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

и используйте устанавливаемый триггер onOpen для этой функции. Как уже упоминалось в предыдущем постере, я также не верю, что вы можете показать боковую панель (которая требует авторизации) на простом триггере onOpen (который не требует авторизации).

0 голосов
/ 22 мая 2018

Простая функция открытия триггера не может открыть боковую панель, потому что она работает в AuthMode.LIMITED. Вы должны использовать функцию, которая запускается в Auth.Mode.FULL, чтобы открыть боковую панель, например, устанавливаемый триггер.

Я знаю, что речь идет не о надстройках, но применима следующая цитата

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

Примечание. Надстройки не могут открывать боковые панели или диалоговые окна во время выполнения в AuthMode.LIMITED. Вы можете использовать пункты меню для открытия боковых панелей и диалогов, так как они запускаются в AuthMode.FULL.

Канонические ссылки:

0 голосов
/ 17 мая 2018

Может быть, у пользователя нет прав на редактирование СС? Google Developers говорит, что onOpen () срабатывает только в том случае, если пользователь, посещающий ваш лист, имеет разрешение на редактирование SS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...