首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非常简单的Google-apps脚本导致语法错误

非常简单的Google-apps脚本导致语法错误
EN

Stack Overflow用户
提问于 2017-04-13 22:19:11
回答 2查看 2.5K关注 0票数 0

我有一个谷歌应用程序的集合。脚本,我作为独立的应用程序运行。,通常嵌入到谷歌网站。昨天我复制了我的一个正常运行的脚本,并像过去多次做的那样进行了修改,但现在新的脚本不能运行,它由于语法错误而失败。盯着这个非常简单的脚本看了几个小时,没有解决问题,我想这可能是Google的问题,或者是我的领域(Corp.域)的问题。

代码语言:javascript
复制
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);
}

当我尝试运行时,从执行记录中截取:

代码语言:javascript
复制
[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]

来自调试器的错误:

代码语言:javascript
复制
 We're sorry, a server error occurred. Please wait a bit and try again.

然后在调试器的左侧窗格中显示以下内容:

代码语言:javascript
复制
<Unknown file>null [0]
Code : doGet [8]

任何帮助或见解都将非常感谢。如果这是一个上篮和/或已经有人回答,我深表歉意。

编辑以添加html文件:

index.html

代码语言:javascript
复制
<!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>
EN

回答 2

Stack Overflow用户

发布于 2017-04-14 00:15:00

参考:问题的作者找出了问题/语法错误

错误的原因是html中使用的scriptlet中存在语法错误,即修改以下内容:

代码语言:javascript
复制
<?= for (var i = 0; i < statArray.length; i++) { ?>

添加到标准的scriptlet标记

代码语言:javascript
复制
<? for (var i = 0; i < statArray.length; i++) { ?>

Html代码应如下所示:

代码语言:javascript
复制
<!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> 
票数 2
EN

Stack Overflow用户

发布于 2017-04-13 22:24:54

您是否尝试过使用index.html

代码语言:javascript
复制
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);
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43394750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档