GAS: HTMLService не открывает боковую панель во время выполнения V8 - PullRequest
0 голосов
/ 22 февраля 2020

У меня очень большой проект, работающий на Rhino, но когда я переключаю его на V8, одна из основных функций c выходит из строя - боковую панель в Google Sheets больше нельзя открыть.

Basi c архитектура:

A) Google Sheet A со скриптом (Rhino), импортирующим библиотеку GAS (V8). Боковая панель находится в библиотеке.

против

B) Google Sheet B со скриптом (V8), импортирующим библиотеку GAS (V8). Боковая панель находится в библиотеке.


Этот код находится в библиотеке (автономный файл сценария GAS, работающий на V8):

// called from parent script as LIB.showSidebar()
function showSidebar() {
  try {
    var ui = HtmlService.createTemplateFromFile("sidebar/sidebarClient.html")
      .evaluate()
      .setTitle("tools sidebar");
    SpreadsheetApp.getUi().showSidebar(ui);
  } catch (error) {
    var ui = SpreadsheetApp.getUi();
    ui.alert("Couldn't render sidebar: " + error);
    return;
  }
}

Предыдущая функция библиотеки запущена из родительского сценария Sheet A / B через дескриптор пространства имен «LIB»:

// simple trigger
function onOpen(e) {
  buildMenu();
}

//  builds menu
function buildMenu() {
  SpreadsheetApp.getUi()
    .createMenu("My menu")
    .addItem("Open sidebar", "openSidebar")
    .addToUi();
}

// opens sidebar
function openSidebar() {
  LIB.showSidebar();
}

Поведение:

A) Все работает нормально, код выше открывается боковая панель на листе А, как и ожидалось.

B) В результате появляется предупреждение:

"Не удалось отобразить боковую панель: исключение: не найдено. "

Переключение сценария на листе B обратно на Rhino решает проблему, и боковая панель открывается также на листе B.

Поэтому проблема заключается в переключении на V8.

Является ли проблема с именем файла в форме пути в V8 ( "sidebar / sidebarClient. html" )? Я использую cl asp для синхронизации c файлов в подпапках - это действительно огромный проект, и я не могу (или скорее отказываюсь) обойтись без этого.

Редактировать: Я пытался использовать имя файла с расширением. html и без него, а также с путем и без него. Поведение одинаково (все варианты пути к файлу "sidebar / sidebarClient", "sidebar / sidebarClient. html", "sidebarClient" и "sidebarClient. html" ведут себя одинаково, открытие в листе A, не найдено в листе B).

У кого-нибудь есть идеи, что может происходить?

1 Ответ

1 голос
/ 23 февраля 2020

Я также открыл проблему в системе отслеживания проблем Google, которая до сих пор не решена: https://issuetracker.google.com/issues/150054572

...