问题
I'm currently in the process of changing over my Google Apps Scripts that use the deprecated UI service to the HtmlService.
I've created a modal dialogue using the following code (in a spreadsheet container-bound script):
var htmlTemplate = HtmlService.createTemplateFromFile('testDialogue');
htmlTemplate = template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi().showModalDialog(htmlTemplate, 'Test Dialogue');
The dialogue box opens, but I need to modify its dimensions.
HtmlOutput objects have a setHeight method, but there doesn't seem to be the same method available for HtmlTemplate objects.
I tried using the method anyway on the object like this:
var htmlTemplate = HtmlService.createTemplateFromFile('testDialogue').setHeight(300);
But that produces this error:
TypeError: Cannot find function setHeight in object HtmlTemplate
Also, I checked the SpreadsheetApp Ui Class and showModalDialog method but neither of them seem to have methods for setting the height of HtmlTemplate objects.
回答1:
The .setHeight() method can be used when chaining it after the .evaulate() method, like so:
template = template.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setHeight(300);
Update 2/19/19: The .setSandboxMode() method no longer has any effect - now all scripts now use IFRAME mode regardless of what sandbox mode is set (documentation). That method was not related to setting the height but I figured I'd mention this in case anyone ends up copying and pasting this code sample.
来源:https://stackoverflow.com/questions/28041946/set-height-of-google-apps-script-showmodaldialog-when-using-an-htmlservice-htmlt