我很难弄清楚如何使用Google Apps脚本传递参数。具体来说,这是SpreadsheetApp服务中的对话框。这是我想要完成的一个简单的代码:
function confirmation() {
var a = 6;
var b = 7;
var HTMLoutput = 'Would you like to add these numbers?';
HTMLoutput += '<input type="button" value="Yes" ';
HTMLoutput += 'onclick="google.script.run.confirmed(a, b)" />';
HTMLoutput += '<input type="button" value="No" ';
HTMLoutput += 'onclick="google.script.host.close()" />';
SpreadsheetApp.getUi().showModalDialog(
HtmlService.createHtmlOutput(HTMLoutput), '');
}
function confirmed(a, b) {
Logger.log(a+b);
}
由于某种原因,参数未通过。我有一种感觉,它与变量在String中的方式有关。我怎样才能做到这一点?
答案 0 :(得分:0)
您有时可以使用append
:
var HTMLoutput = '';
HTMLoutput.append("<div>This is appended HTML</div>");
文本公式很难理解和调试。你仍然需要使用它们,但也许这会使它更容易。
onclick
事件需要引用HTML中的代码。现在,它指向谷歌脚本。也许试试这个:
onclick="confirmed(a, b)"
function confirmation() {
var a = 6;
var b = 7;
var HTMLoutput = '';
HTMLoutput += '<script>function confirmed(' + a + "," + b + ') {' +
'Logger.log(a);' +
'Logger.log(b);' +
'google.script.run.confirmed(a, b);' +
'google.script.host.close();}</script>'
HTMLoutput += '<input type="button" value="Yes" ';
HTMLoutput += 'onclick="confirmed(a, b)" />';
HTMLoutput += '<input type="button" value="No" ';
HTMLoutput += 'onclick="google.script.host.close()" />';
SpreadsheetApp.getUi().showModalDialog(
HtmlService.createHtmlOutput(HTMLoutput), '');
}
function confirmed(a, b) {
//code here
};
请注意,您有两个名为confirmed
的函数,一个在HTML中,另一个在.gs
服务器代码中。