2017-04-13 2 views
0

Ich habe eine Sammlung von Google App. Skripte, die ich als Standalone-Apps ausführe, normalerweise in Google Sites eingebettet. Gestern habe ich eines meiner funktionierenden Skripte kopiert und modifiziert, wie ich es schon oft in der Vergangenheit getan habe, aber jetzt läuft das neue Skript nicht mehr, es schlägt mit einem Syntaxfehler fehl. Nachdem ich dieses extrem einfache Skript stundenlang ohne eine Lösung angestarrt habe, denke ich, dass es ein Problem mit Google oder ein Problem in meiner Domäne (Domäne des Unternehmens) sein könnte.Sehr einfaches Google-Apps-Skript führt zu Syntaxfehler

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); 
} 

Schnipsel aus der Ausführung Transkript, wenn ich versuche zu laufen:

[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] 

Fehler von Debugger:

We're sorry, a server error occurred. Please wait a bit and try again. 

und dann hat es die folgenden im linken Bereich des Debuggers :

<Unknown file>null [0] 
Code : doGet [8] 

Jede Hilfe oder Einsicht wird sehr geschätzt. Entschuldigung, wenn dies ein Lay-up ist und/oder bereits beantwortet wurde.

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> 
+2

ich glaube, es ist ein Syntaxfehler in HTML-Datei Wenn Sie versuchen, es auszuwerten, wird in Zeile 8 oder t.evaluate ein Fehler ausgegeben. Könnten Sie Ihre HTML-Datei teilen? –

+0

@Jack Brown: Ja, du bist ein Genie! Es war genau dort, während ich die ganze Zeit die ganze Zeit über im Gesicht herumschaute. Das Druck-Skript in der HTML-Datei sollte eine Standardnotation sein (), die Lektion, die ich bei Willy-Nilly Copy and Paste gelernt habe. Allerdings benötige ich immer noch das Skript für den eigentlichen Array-Vars. VIELEN DANK! – MadMax5150

Antwort

0

haben Sie 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); 
 
}

+1

Vielen Dank für Ihren Vorschlag. Leider habe ich gerade versucht, die Erweiterung .html hinzuzufügen, aber es schlägt immer noch fehl :( – MadMax5150

+0

hum ... können Sie auch Ihre index.html Datei liefern? – OblongMedulla

+0

Wenn ich Ihren Code mit einer leeren index.html Vorlage ausführen, erhalte ich 0 Fehler vielleicht in das. – OblongMedulla

2

als Referenz zu verwenden versucht:

EDIT HTML-Datei hinzufügen, um die Autor der Quest Ionen gemustert das Problem/syntax error out

Der Grund für den Fehler war ein Syntaxfehler dies ändert in einem scriptlet im html dh verwendet:

<?= for (var i = 0; i < statArray.length; i++) { ?> 

zu einem Standard scriptlet tag

<? for (var i = 0; i < statArray.length; i++) { ?> 

HTML-Code sollte die folgenden sein:

<!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> 
Verwandte Themen