为什么ui.alert有效,但ui.prompt没有onOpen()?

时间:2018-02-18 16:33:31

标签: google-apps-script google-sheets

当我使用onOpen()时,我可以创建一个弹出窗口ui.alert但是ui.prompt不起作用。

例如:

 function onOpen() {
 var ui = SpreadsheetApp.getUi(); // get ui for alert
 ui.alert('Hello!')
     }

工作但是:

 function onOpen() {
 var ui = SpreadsheetApp.getUi(); // get ui for alert
 var nname = ui.prompt('What is your name?', 'E.G.: J Smith', ui.ButtonSet.OK)
             }

没有!

还有其他人发现此问题吗?我做错了吗?

非常感谢,

编辑:

如果我这样运行,ui.alert可以工作,但ui.prompt什么都不做。如果我调试该函数,两者都有效。

function onOpen() { 
var ui = SpreadsheetApp.getUi(); // get ui for alert 
ui.alert('Hello!') 
var nname = ui.prompt('What is your name?', 'E.G.: J Smith', ui.ButtonSet.OK); 
} 

1 个答案:

答案 0 :(得分:1)

这是简单onOpen触发器的权限限制。

如果您使用提示检查代码的执行记录,您将看到Execution failed: You do not have permission to call prompt (line 3, file "____________") [0.001 seconds total runtime]

如果您希望这个工作,您需要使用已安装的触发器。请阅读以前对类似问题here的回答,它关于表单中的onSubmit触发器,但您只需要更改为onOpen触发器,然后再更改为脚本将按你的意愿工作。