Saya mempunyai fungsi untuk aplikasi web yang menyalin templat, ia menerima nama templat dan id templat sebagai parameter.
code.gs
Fungsi menjana_(idTemplate, nama) {
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) // 这些值是我想要传递给客户端的。 }
Fungsi ini adalah apa yang saya gunakan untuk menghantar nama dan URL yang disalin kepada pelanggan. Saya tahu bahawa dalam JavaScript, untuk mengembalikan berbilang parameter, ia mesti dilaksanakan melalui tatasusunan.
function getFile(nameF,linkF){ var array = [nameF,linkF]; return array; }
Ini ialah skrip klien yang saya gunakan untuk cuba mendapatkan semula data replika yang dijana:
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>
Saya menggunakan butang untuk menguji sama ada ia dihantar dengan betul, tetapi saya tidak dapat memaparkan data, konsol penyemak imbas menunjukkan batal apabila menunjukkan log.
Apa yang boleh saya lakukan salah? Di pihak pelanggan saya telah mencuba google.script.run.withSuccessHandler(copyValues).getFile(nameF,linkF);
tetapi tidak berjaya.
<button id="btn" onclick="create(); getValues();"
Ini adalah butang yang menyala create()
,用于创建复制的脚本,以及getValues();
untuk mendapatkan nama dan URL salinan itu. Salinan templat berjaya dibuat, tetapi nama fail dan URL tidak diambil pada klien.
Cuba ini:
GS:
HTML:
Dialog:
Ini adalah contoh mendapatkan maklumat fail.
Seperti yang ditunjukkan dalam tangkapan skrin di bawah, apabila saya mengklik butang, nama fail dan URL akan dipaparkan dalam kotak input.
Kod.gs
HTML_Test.html