Ich habe eine Funktion für eine Webanwendung, die eine Vorlage kopiert. Sie erhält den Namen der Vorlage und die ID der Vorlage als Parameter.
code.gs
Funktion generic_(idTemplate, name) {
var template = DriveApp.getFileById(idTemplate); var folder = '文件夹id'; var copyName = name + "-" + CurrentDate;// 添加创建日期 var copy; try { copy = template.makeCopy(copyName, folder); } catch (e) { Logger.log(e.stack); } var nameF = copy.getName(); var linkF = copy.getUrl() Logger.log(nameF,linkF) return getFile(nameF,linkF) // 这些值是我想要传递给客户端的。 }
Diese Funktion verwende ich, um den kopierten Namen und die URL an den Client zu übergeben. Ich weiß, dass in JavaScript die Rückgabe mehrerer Parameter über ein Array implementiert werden muss.
function getFile(nameF,linkF){ var array = [nameF,linkF]; return array; }
Dies ist das Client-Skript, mit dem ich versuche, die generierten replizierten Daten abzurufen:
HTML
<script> function getValues(){ google.script.run.withSuccessHandler(copyValues).getFile(); } function copyValues(values){ var nameF = values[0]; var urlF = values[1]; console.log(values); console.log(nameF); console.log(urlF); console.log("值成功传递了"); } </script>
Ich verwende eine Schaltfläche, um zu testen, ob es korrekt übergeben wird, aber ich kann die Daten nicht anzeigen, die Browserkonsole zeigt beim Anzeigen des Protokolls Null an.
Was könnte ich falsch gemacht haben? Auf der Client-Seite habe ich es versucht google.script.run.withSuccessHandler(copyValues).getFile(nameF,linkF);
, aber es hat nicht funktioniert.
<button id="btn" onclick="create(); getValues();"
Dies ist die Schaltfläche, die ausgelöst wird create()
,用于创建复制的脚本,以及getValues();
, um den Namen und die URL dieser Kopie abzurufen. Die Vorlagenkopie wurde erfolgreich erstellt, der Dateiname und die URL werden jedoch nicht auf dem Client abgerufen.
试试这个:
GS:
HTML:
Dialog:
这是一个获取文件信息的示例。
如下截图所示,当我点击按钮时,文件名和URL将显示在输入框中。
Code.gs
HTML_Test.html