You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script中google.script.host.close()无法关闭模态对话框

Google Workspace插件模态框无法关闭:this.H.dispatchEvent is not a function 修复方案

你的代码里doAThing函数存在关键错误,导致模态框无法正常关闭:调用HtmlService.createTemplateFromFile得到的是模板对象(Template),你直接在模板对象上调用setHeight和setWidth,但这些方法属于HtmlOutput对象,而非模板对象。错误的调用顺序让生成的HTML输出没有正确初始化,进而引发google.script.host对象异常,触发dispatchEvent相关报错。

修正后的doAThing函数代码

function doAThing() {
    var template = HtmlService.createTemplateFromFile("doAThing");
    // 先通过evaluate()将模板转为HtmlOutput对象,再设置宽高
    var htmlOutput = template.evaluate();
    htmlOutput.setHeight(230);
    htmlOutput.setWidth(230);
    var ui = DocumentApp.getUi();
    ui.showModalDialog(htmlOutput, "Do a Cool Thing");
}

关键说明

  • 原代码中th.evaluate()执行后没有保存返回值,直接在模板对象th上调用setHeight/setWidth完全无效,因为模板对象本身不提供这些方法。
  • 必须先通过evaluate()把模板转换成可用于模态框的HtmlOutput对象,再对这个对象设置宽高,才能保证模态框加载完整的脚本环境,让google.script.host.close()正常执行。

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 18:02:20