我有一个谷歌应用程序的集合。脚本,我作为独立的应用程序运行。,通常嵌入到谷歌网站。昨天我复制了我的一个正常运行的脚本,并像过去多次做的那样进行了修改,但现在新的脚本不能运行,它由于语法错误而失败。盯着这个非常简单的脚本看了几个小时,没有解决问题,我想这可能是Google的问题,或者是我的领域(Corp.域)的问题。
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>发布于 2017-04-14 00:15:00
参考:问题的作者找出了问题/语法错误
错误的原因是html中使用的scriptlet中存在语法错误,即修改以下内容:
<?= for (var i = 0; i < statArray.length; i++) { ?>添加到标准的scriptlet标记
<? for (var i = 0; i < statArray.length; i++) { ?>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> 发布于 2017-04-13 22:24:54
您是否尝试过使用index.html
function doGet() {
var t = HtmlService.createTemplateFromFile('index.html');
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);
}
https://stackoverflow.com/questions/43394750
复制相似问题