我正在尝试在有人没有输入值的情况下进行一些错误提示。在这种情况下,我检查该值是否为空,并最终检查它是否为日期。
所以当这里是跑下来的时候。
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 之外。
最佳答案
如果您想执行您所描述的操作,请使用 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/