Sie können keine einfachen JS- oder CSS-Dateien im Projekt haben, also erstellen Sie stattdessen Html-Dateien, die sie enthalten, und platzieren Sie vorzugsweise die < script>< /script> oder < style> innerhalb dieser Dateien.
Sie könnten also eine Datei mit dem Namen myscript.js.html
mit dem folgenden Inhalt:
<script>
alert ("Hello World!");
</script>
Nun fügen Sie diese Zeile in die html-Datei ein, in der das Asset enthalten sein soll
Fügen Sie dies in die Html-Datei ein, in die Sie das Asset einfügen möchten:
<?= HtmlService.createHtmlOutputFromFile('myscript.js').getContent() ?>
Beachten Sie, dass das ".html" im Dateinamen weggelassen wurde.
Wenn Sie eine Reihe von Assets einbeziehen wollen, ist es vielleicht eine gute Idee, eine Hilfsfunktion zu erstellen. Sie können die folgende Funktion in Ihren Code (gs-Datei) einfügen
function include(filename) {
return HtmlService.createTemplateFromFile(filename).getRawContent();
}
Dann kann die obige Zeile geändert werden in:
<?!= include('myscript.js') ?>
Schließlich müssen Sie auch die evaluate()-Methode des HTMLTemplate aufrufen, da sonst der Code in <?!= ?>
in der html-Datei wird nicht ausgewertet. Wenn Sie die Html-Datei also zum Beispiel so ausgeben:
var html=HtmlService.createTemplateFromFile('repeatDialog');
SpreadsheetApp.getUi().showModalDialog(html, 'foo');
Sie müssen es einfach ändern in:
var html=HtmlService.createTemplateFromFile('repeatDialog').evaluate();
SpreadsheetApp.getUi().showModalDialog(html, 'foo');
Wenn Sie createHtmlOutputFromFile und nicht createTemplateFromFile verwendet haben, sollten Sie wissen, dass evaluate() htmlOutput zurückgibt. Wenn Sie sich also fragen, wohin Sie Dinge wie .setWidth() setzen sollen, dann ist das nach dem evaluate()-Aufruf.