【发布时间】:2017-04-14 00:14:59
【问题描述】:
我有一组 Google 应用。我作为独立应用程序运行的脚本,通常嵌入到 Google 协作平台中。昨天我复制了我的一个功能脚本并像过去一样修改了很多次,但是现在新的脚本没有运行,它失败并出现语法错误。盯着这个极其简单的脚本看了好几个小时没有得到解决,我认为这可能是 Google 的问题,或者是我的域(公司域)中的一些问题。
function doGet() {
var t = HtmlService.createTemplateFromFile('index');
var ss = SpreadsheetApp.openById('sheet_ID');
var lrN = ss.getSheetByName('NCMR').getLastRow();
t.statArray = ss.getSheetByName('NCMR').getRange('Z3:Z'+lrN+'').getValues();
return t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
当我尝试运行时从执行记录中截取:
[17-04-13 06:39:26:322 PDT] Sheet.getRange([Z3:Z23]) [0.072 seconds]
[17-04-13 06:39:26:381 PDT] Range.getValues() [0.058 seconds]
[17-04-13 06:39:26:382 PDT] Function.apply([[]]) [0 seconds]
[17-04-13 06:39:26:389 PDT] Execution failed: SyntaxError: Syntax error. (line 8, file "Code") [0.254 seconds total runtime]
来自调试器的错误:
We're sorry, a server error occurred. Please wait a bit and try again.
然后它在调试器的左侧窗格中有以下内容:
<Unknown file>null [0]
Code : doGet [8]
任何帮助或见解将不胜感激。抱歉,如果这是一个搁置和/或已经回答。
编辑添加html文件:
index.html
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<base target="_top">
</head>
<body>
<center>
<table>
<tr><td><b> Id</b></td></tr>
<?= for (var i = 0; i < statArray.length; i++) { ?>
<?= for (var j = 0; j < statArray[i].length; j++) { ?>
<tr><td><?= statArray[i] ?></td>
<?= } ?>
</tr>
<?= } ?>
</table>
</center>
</body>
</html>
【问题讨论】:
-
我相信当您尝试评估 HTML 文件时存在语法错误,它会在第 8 行或 t.evaluate 步骤中引发错误。你能分享你的 HTML 文件吗?
-
@Jack Brown:是的,你是个天才!它一直就在我面前,HTML 文件中的打印脚本应该是标准符号 ( . . . ?>),这是关于随意复制和粘贴的教训。但是,我仍然需要实际数组变量的打印脚本。谢谢!
标签: google-apps-script syntax-error