gpt4 book ai didi

html - 如何在 Google Apps 脚本的 HTMLOutput 中使用 Scriptlet

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:15 25 4
gpt4 key购买 nike

我正在加载一个模态对话框:

 var html = HtmlService.createHtmlOutputFromFile('File')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(1000)
.setHeight(700);

SpreadsheetApp.getUi()
.showModalDialog(html, 'My Page');

现在,在 File.HTML 中,我想加载另一个带有 CSS 设置的 HTML 文件,我该怎么做?

我试过使用 scriptlet 将它包含在 HtmlTemplate 中,但它不起作用:

<?!= include('File'); ?>

编辑:

我在code.gs中定义了include函数:

function include (file) {
return HtmlService.createTemplateFromFile(file).evaluate().getContent();
}

最佳答案

问题是您正在使用:

createHtmlOutputFromFile

代替:

createTemplateFromFile

您需要创建一个模板:

这就是您所看到的:

Include with Dialog

小脚本没有运行,但被解释为文本。

这是你想看到的:

Include that works

代码应该是这样的:

代码.gs

// Use this code for Google Docs, Forms, or new Sheets.
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Dialog')
.addItem('Open', 'openDialog')
.addToUi();
}

function openDialog() {
var html = HtmlService.createTemplateFromFile('index')
.evaluate();//This is necessary

SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, 'Dialog title');
}

function include(File) {
return HtmlService.createHtmlOutputFromFile(File).getContent();
};

index.html

<?!= include('File'); ?>

Hello, world!
<input type="button" value="Close"
onclick="google.script.host.close()" />

文件.html

<div>
This is a test. it worked!
</div>

基本上,您需要更改:

var html = HtmlService.createHtmlOutputFromFile('index')

到:

var html = HtmlService.createTemplateFromFile('index')

从文件创建一个TEMPLATE

我也把代码改成这样:

function openDialog() {
var html = HtmlService.createTemplateFromFile('index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);

原答案:

include 不是关键字 或内置函数。您需要在名为 include.gs 脚本文件中创建一个函数。

    function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename).getContent();
};

此外,您不能混合使用 HTML 服务和 UI 服务。我不知道这是否是您想要做的,但我想我会提到它。

您想要完成的是在此处的文档中描述的:

Documentation - Best Practices

关于html - 如何在 Google Apps 脚本的 HTMLOutput 中使用 Scriptlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27510858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com