我在Google Script中有一个写入电子表格的doGet(e)函数,然后返回使用Content Service创建的简单“成功”消息。我的问题是,有没有办法自动关闭此消息创建的选项卡/窗口?用户在写入电子表格时将“批准”不同的项目,使用此功能批准连续几个项目可能会很烦人,然后必须关闭该功能创建的每个连续选项卡。
这是GS:
function doGet(e) {
var id = e.parameter.id;
var fundnumber = e.parameter.fundnumber;
var date = Utilities.formatDate(new Date(), "America/New_York", "MM/dd/yyyy");
var sh = SpreadsheetApp.openById("12jWGJWHCLoiLVoA0TlBQ0QgOMxBU9gVj9HQQveiNg0w").getSheetByName("Purchase Order Meta");
var data = sh.getDataRange().getValues();
for(n=0;n<data.length;++n){
if( data[n][1].toString().match(id)==id ){
data[n][8] = 'Approved by Linda on ' + date;
data[n][16] = 'Approved by Linda on ' + date + '. Awaiting order from Trish.';
data[n][13] = fundnumber
};
sh.getRange(1,1,data.length,data[0].length).setValues(data); // write back to the sheet
}
return ContentService.createTextOutput("success");
}
我的理解是,我有返回内容服务或HTML服务的内容,以便编写一个doGet。我已经尝试使用HTML服务并将JS添加到页面以关闭窗口,但它似乎不起作用。 :\
答案 0 :(得分:0)
使用HTMLService
输出,您可以通过将google.script.host.close()
包装在超时函数中来关闭弹出窗口或HTML页面,如下所示:
setTimeout( function() { google.script.host.close(); }, 3000);
将您的回报更改为:
var output = "<body><p>Success!</p><script>setTimeout( function() { google.script.host.close(); }, 3000);</script></body>"
return HtmlService.createHtmlOutput(output);