Google表格OnEdit() - 您无权调用showModalDialog

时间:2017-12-06 13:19:58

标签: google-apps-script google-sheets

从本月初开始,这段代码已经没有用了

function onEdit(e){    
              var html = HtmlService.createTemplateFromFile( 'MyHtmlFile' )
              .evaluate()
              .setWidth( 800 )
              .setHeight( 400 );
              SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
              .showModalDialog( html, 'My page title' ); 
}

当我编辑电子表格的单元格没有显示弹出窗口但我在控制台中出现错误

  

Google Apps脚本:您无权调用showModalDialog

2 个答案:

答案 0 :(得分:6)

onEdit()必须是Installable Trigger,因为它使用的是需要授权的服务。

注意:在将onEdit()用作可安装触发器时重命名-developer-mode=0以避免possible issues

  

与简单触发器一样,可安装触发器允许Apps脚本在发生特定事件(如打开文档)时自动运行。 可安装触发器比简单触发器提供更多灵活性:它们可以调用需要授权的服务,...

Managing triggers manually

要通过脚本编辑器中的对话框手动创建可安装触发器,请执行以下步骤:

  1. 从脚本编辑器中,选择编辑>当前项目的触发器。
  2. 点击以下链接:未设置触发器。点击此处立即添加一个。
  3. 在“运行”下,选择要触发的功能名称。
  4. 在“活动”下,选择时间驱动或脚本绑定的Google App(例如,从电子表格中)。
  5. 选择并配置您要创建的触发器类型(例如,每小时运行的小时计时器或打开的触发器)。
  6. (可选)单击通知以配置触发功能失败时如何以及何时通过电子邮件联系。
  7. 点击保存。

答案 1 :(得分:1)

此答案用于文档目的。

  • 如果您想避免手动安装触发器,您还可以通过脚本创建可安装的 onEdit 触发器。

要为 onEdit 创建可安装 myFunction 触发器,请只执行一次{{ 1}} 函数如下:

create_onEdit

参考: