问题
I have a very large project running on Rhino, but when I switch it to V8 one of the basic functionalities break - the sidebar in Google Sheets can no longer be opened.
Basic architecture:
A) Google Sheet A with a script (Rhino) importing a GAS Library (V8). The sidebar is in the Library.
versus
B) Google Sheet B with a script (V8) importing a GAS Library (V8). The sidebar is in the Library.
This code is in the Library (standalone script file, running in 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;
}
}
The previous library function is ran from the parent Sheet A/B script via the "LIB" namespace descriptor:
// 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();
}
Behavior:
A) Everything works fine, the code above opens up the Sidebar in Sheet A as expected.
B) The result is an alert showing:
"Couldn't render sidebar: Exception: Not found."
Switching the script in Sheet B back to Rhino solves the issue, and the Sidebar opens in Sheet B too.
Therefore, the issue is the switch to V8.
Is the filename in the form of a path the issue on V8 ("sidebar/sidebarClient.html")? I'm using clasp to sync files into subfolders - it's really a huge project and I can't (or rather refuse to) do without that.
I tried using the filename with and without the .html extension, and with and without the path. The behavior is the same (all variations of the file path "sidebar/sidebarClient", "sidebar/sidebarClient.html", "sidebarClient" and "sidebarClient.html" behave the same, opening in sheet A, not found in sheet B).
Anyone got any ideas what might be going on?
回答1:
I also opened an issue on Google's Issue Tracker, currently still unresolved: https://issuetracker.google.com/issues/150054572
来源:https://stackoverflow.com/questions/60356124/html-service-does-not-open-a-sidebar-in-v8-runtime