我正在构建一个插件,该插件应该在所有编辑器(幻灯片,文档和表格)中都可以使用,但是在使用此插件时会陷入事物的初始部分-
consteval
其背后的想法是, ui 变量可以是任何有效的引用,具体取决于附件所使用的文档类型。
但是,虽然这在Sheets上有效(假设这是因为它是第一个),但在其他2上却出现了以下错误-
您无权执行该操作。
关于如何克服这一问题的任何建议都会很棒。谢谢。
答案 0 :(得分:2)
是的,几天前我有一个similar problem,但我认为我们没有在此处发布最终解决方案,所以这是我为克服提出的问题所做的工作-
var fileUI;
try {
fileUI = SpreadsheetApp.getUi();
} catch (e) {
try {
fileUI = DocumentApp.getUi();
} catch (e) {
try {
fileUI = SlidesApp.getUi();
} catch (e) {}
}
}
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
if (fileUI) {
var menu = fileUI.createAddonMenu();
if (e && e.authMode == ScriptApp.AuthMode.NONE) {
menu.addItem('Please Login', 'login');
} else {
menu.addItem('Action 1', 'action');
menu.addItem('Refresh', 'refresh');
}
menu.addToUi();
}
}
基本上,根据TheMaster的建议,我使用了try {} catch() {}
方法来使它工作。
希望这对您也有帮助。