【问题标题】:Set height of Google Apps Script showModalDialog when using an HtmlService HtmlTemplate使用 HtmlService HtmlTemplate 时设置 Google Apps 脚本 showModalDialog 的高度
【发布时间】:2015-01-20 09:38:00
【问题描述】:

我目前正在将使用已弃用 UI 服务的 Google Apps 脚本更改为 HtmlService。

我使用以下代码(在电子表格容器绑定脚本中)创建了一个模式对话框:

var htmlTemplate = HtmlService.createTemplateFromFile('testDialogue');

htmlTemplate = template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);

SpreadsheetApp.getUi().showModalDialog(htmlTemplate, 'Test Dialogue');

对话框打开,但我需要修改它的尺寸。

HtmlOutput 对象有一个setHeight method,但似乎没有可用于HtmlTemplate objects 的相同方法。

我尝试在这样的对象上使用该方法:

var htmlTemplate = HtmlService.createTemplateFromFile('testDialogue').setHeight(300);

但这会产生这个错误:

TypeError: 在对象 HtmlTemplate 中找不到函数 setHeight

另外,我检查了SpreadsheetApp Ui Class and showModalDialog method,但它们似乎都没有设置 HtmlTemplate 对象高度的方法。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    .setHeight() 方法可以在 .evaulate() 方法之后链接时使用,如下所示:

    template = template.evaluate()
                       .setSandboxMode(HtmlService.SandboxMode.IFRAME)
                       .setHeight(300);
    

    2/19/19 更新:.setSandboxMode() 方法不再有任何效果 - 现在所有脚本现在都使用 IFRAME 模式,无论设置什么沙盒模式 (documentation)。该方法与设置高度无关,但我想我会提到这一点,以防有人最终复制和粘贴此代码示例。

    【讨论】:

    • 如果沙盒“不再”有效,您是否有 IFRAME 示例?
    • @aNewb setSandboxMode() 方法不再需要了。所以工作声明是:template = template.evaluate().setHeight(300);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2015-02-22
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多