我在Rhino上运行了一个非常大的项目,但是当我将其切换到V8时,其中一项基本功能中断了-无法在Google表格中打开侧边栏。
基本架构:
A]带有用于导入GAS库(V8)的脚本(Rhino)的Google表格A。侧边栏在库中。
对
B]具有导入GAS库(V8)的脚本(V8)的Google表格B。侧边栏在库中。
此代码在库中(独立的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;
}
}
先前的库函数是通过“ LIB”命名空间描述符从父Sheet A / B脚本运行的:
// 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)一切正常,上面的代码按预期在工作表A中打开侧边栏。
B)结果是显示以下警报:
“无法呈现边栏:异常:找不到。”
将Sheet B中的脚本切换回Rhino解决了该问题,并且侧边栏也在Sheet B中打开。
因此,问题在于切换到V8。
V8上的文件名是否以路径形式出现问题(“ sidebar / sidebarClient.html”)?我正在使用扣环将文件同步到子文件夹中-这确实是一个巨大的项目,如果没有它,我将无法(或者拒绝这样做)。
Edit:我尝试使用带和不带.html扩展名,带和不带路径的文件名。行为是相同的(文件路径“ sidebar / sidebarClient”,“ sidebar / sidebarClient.html”,“ sidebarClient”和“ sidebarClient.html”的所有变体行为相同,在工作表A中打开,在工作表B中找不到) 。
任何人都知道发生了什么事吗?
我还在Google的问题跟踪器上打开了一个问题,目前仍未解决:https://issuetracker.google.com/issues/150054572