javascript - 将变量从谷歌脚本传递到 html 对话框

标签 javascript html google-apps-script

我正在尝试在有人没有输入值的情况下进行一些错误提示。在这种情况下,我检查该值是否为空,并最终检查它是否为日期。

所以当这里是跑下来的时候。

1) 运行if语句,如果值为真,运行带字符串参数的错误提示

if (sheetData[4] === ""){
  errorPrompt("Title");
}

2) 使用字符串参数运行以下函数。然后我希望该函数将参数传递给 html iframe。

function to open dialog
function errorPrompt(missvar) {
  var missVar = "test";
  var html = HtmlService.createHtmlOutputFromFile('missingvar')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showModalDialog(html, missVar + ' is Missing please provide ' + missVar + " and try again.");
}

3) 然后变量应该传递给显示为模态对话框的 html 文件。如果字符串等于“Title”,对话应显示为:“缺少Title。请输入Title,然后重试。”

缺少var.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>            
        <script>
        UI.getElementById("missVar").innerHTML;
        </script>

       The <var id=missVar></var> is missing. Please enter <var id=missVar></var> and try again.
    <input type="button" value="Close"
        onclick="google.script.host.close()" />

  </body>
</html>

上面的 HTML 显示,但是 missVar 没有显示。有人有什么想法吗?请注意,对话框的标题栏正确显示了变量,但这在 html 之外。

最佳答案

HTML Service: Templated HTML

如果您想执行您所描述的操作,请使用 HtmlService 模板。它删除了客户端的 JS,并提供完整的对话框,missVar 完好无损。

var html = HtmlService.createTemplateFromFile(missingVar);

    html.missingVar = missVar;

var htmlOutput = html.evaluate();

您的 missingvar.html 文件将包含

<?= missingVar ?>

无论您希望在何处显示该变量。

关于javascript - 将变量从谷歌脚本传递到 html 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37059639/

相关文章:

javascript - "x"不是构造函数

javascript - 在两页中显示来自 JSON 的信息

javascript - 视频全屏时增加自定义控件的 z-index

javascript - Google 文档 - 实时访问文本更改

javascript - JQuery 动画和 slideUp 同时

javascript - Google APP SCRIPT -> 在给定的持续时间后强制提交 google 表单

javascript - jQuery 包含选择器,用于在将 div 分组到子组时搜索多个字符串

javascript - 我想用一个按钮更改文本

html - 如何使用 HTTP 流式传输音频

java - 无法在 html 上运行 Applet,ClassNotFoundException