google-apps-script - 在项目 html 中使用 google-apps 脚本 url
问题描述
我有一个从谷歌表格部署的网络应用程序,我想在我的 html 文件中构建一个动态 url,它允许我将参数传递给 html 文件,以便它可以正确更新。
正如链接的问题/答案中所引用的,我已将其用作我的 doGet 函数的一部分,以允许使用部分 url 在我的电子表格中设置一个值。这工作正常。
function doGet(e){
var ss = SpreadsheetApp.openById("SHEET_ID");
var sheet = ss.getSheetByName("TAB_NAME");
var row = Number(e.parameter.row);
var col = Number(e.parameter.col);
var range = sheet.getRange(row, col);
sheet.getRange(row, col).setValue('APPROVED')}
我正在发送一封电子邮件,允许用户单击 url 以允许更新单元格。我目前对行和列进行了硬编码,它为该行和列执行所需的功能(更新单元格)。我想要一个动态 url 字符串,它允许我根据数据为不同的行构建 url。
<a href="https://script.google.com/. . ./exec?row=5&col=44"
target="_blank" style="padding: 8px 12px; border: 1px solid
#00AA00;border-radius: 2px;font-family: Helvetica, Arial, sans-
serif;font-size: 14px; color: #ffffff;text-decoration: none;font-
weight:bold;display: inline-block;"> APPROVE</a>
我的 gs 文件中也有这个。如何将 Alast 的值传递给我,它将我想要的行从我的 gs 文件传递到 html 文件?
var thisSS = SpreadsheetApp.openById("Spreadsheet_ID");
var s = thisSS.getSheetByName("View");
var Avals = s.getRange("A1:A").getValues();
var Alast = Avals.filter(String).length;
解决方案
我使用这样的功能:
谷歌脚本(服务器端):
function getScriptURL(qs) {
var url = ScriptApp.getService().getUrl();
//Logger.log(url + qs);
return url + qs ;
}
和这个客户端:
function getUrl(qs){
google.script.run
.withSuccessHandler(loadNewPage)
.getScriptURL(qs);
}
我使用如下命令加载新页面:
window.open(url,"_top");
我使用它在页面之间导航,并且getURL(querystring)
硬连线到导航按钮,但您也可以从客户端或服务器端的动态数据中获取它们。
或许是这样的:
客户端Javascript:
function getUrl(){
var r=$('#rv').val();
var c=$('#cv').val();
var qs={row:r,col:c};
google.script.run
.withSuccessHandler(function(msg){
//not sure what you would want to do here if anything
})
.getScriptURL(qObj);
}
服务器端:
function getScriptURL(qObj) {
var url = Utilities.formatString('%s?row=%s&col=%s',ScriptApp.getService().getUrl(),qObj.row,qObj.col);
//Actually at this point I'd probably just update the data and forget about assembling a querystring to be sent back to the server. And return a message to the user now it has been updated.
//Logger.log(url + qs);
return url;
}
推荐阅读
- javascript - 提交时,此表单不会运行验证脚本
- c++ - C++ 为什么编译器无法生成返回 Lambda 中捕获变量的 const 引用的代码
- php - PHP:getimagesize 为上传的文件返回 false
- javascript - 将 geoJSON 与另一个数组进行比较,如果存在匹配项,那么操作?
- ios - Navigation Controller & TableView: NavBar Hidden after hidden = true 一次
- java - Collections.unmodifiableCollection 如何使用 equals 方法?
- java - SimpleDateFormat 在部署一段时间后给出错误的日期和时间
- javascript - 在 React Native 中上传和加载视频
- python - 我将如何执行此操作?Python
- python - pip - 即使在成功安装后也没有名为“pip”的模块