电子表格UI-提示用户从docs.google.com打开或保存userAppPanel



我的UI适合我(我是电子表格的所有者和脚本创建者)。然而,当我与其他用户共享电子表格时,UI不会完全显示,并且会提示他们从docs.google.com.打开或保存userAppPanel

我已经把我的剧本完整地删减成了以下内容,但仍然没有运气:

function showDialog() {
    // Create the UI application
    var uiApp = UiApp.createApplication();
    // Provide the Popup with a title
    uiApp.setTitle('Parameter Collection Dialog');
    // Create an user instruction label
    var lblInstructions = uiApp.createLabel()
      .setText('Select a type of Person and Country');
    // Add the panel to the application
    uiApp.add(lblInstructions);
    // Show the application in the spreadsheet
    var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
    spreadSheet.show(uiApp);
}

当脚本从脚本编辑器中为每个尝试的用户运行时,UI就会工作——然而,当我将其连接到"打开的电子表格"触发器时,脚本只对我有效——而对其他人无效。

我很快就要完成我的要求了,这是一个非常令人沮丧的最后一关。

非常感谢

更新:请参阅我对解决方案的评论,即使用onOpen函数而不是手动onOpen触发器

我试图重新创建这个问题,并且能够很容易地做到。这似乎是一个错误。我建议你在问题跟踪器中打开一个问题,并用错误号更新这个线程。

感谢您确认Srik。然而,我已经找到了一个解决方案:

我通过脚本编辑器手动将showDialog函数连接到On Open触发器。但是,如果您将showDialog()函数名更改为onOpen(),那么您就不必手动将函数连接到事件,因为onOpen是一个内置事件,现在它适用于所有用户(前提是他们是共享用户并已登录)。

我也会提出一个问题,因为我认为这应该是双向的。

希望我的解决方案也能帮助其他人:)

不幸的是,将函数重命名为onOpen的解决方法并不总是适用的,例如,当您需要以某人(例如您自己)的身份运行函数时。如果在Open()上重命名它,它将在没有标识的情况下运行。我不能这样做,因为我需要在数据库中进行身份验证。

这似乎证实了问题与触发脚本的人的身份有关。

你发布了一期吗?你能分享它的链接吗?

最新更新