我为我的工作场所建立了一个非常有用的工具,可以让我跟踪员工的出勤情况。我的最新补充是,当违规被标记时,电子邮件会发送一个指向该违规ID的链接。我希望能够单击该链接,加载html页面并将违规ID传递给页面。我一直在做很多搜索,但似乎无法找到一个明确的答案,也不是一个与我非常相似的案例。我发现的答案似乎并不适用于我的情况。
以下是示例:
URL: https://script.google.com/a/macros/mycomp.com/s/blahblahmyID/dev
HREF: https://script.google.com/a/macros/mycomp.com/s/blahblahmyID/dev?cID=1457989239035-cc3050b8
我想将1457989239035-cc3050b8
值传递给我的页面。一旦我在页面上得到它,我可以从那里处理它,只是找不到从电子邮件中的HREF链接中提取它的方法。不使用传统网站的缺点之一。
以下是我的doGet()
代码,用于从应用加载Index.html
:
function doGet(e) {
return HtmlService
.createTemplateFromFile('Index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
不确定该代码有多么有用,因为它非常标准。我是不是很幸运,试图这样做?
更新:
我意识到我没有足够的信息来说明这个系统是如何工作的。我使用HTML来提供存储在电子表格(谷歌表)上的信息。有问题的ID是对电子表格中条目的引用(第1列)。它不是应用程序的一部分,我只想传递我需要的row
的值来获取数据。如果我有这个值,我可以运行一个脚本来从电子表格中获取所有其他值。
答案 0 :(得分:1)
ID是e.parameter对象的一个属性,您应该使用类似id=e.parameter.id
您可以在问题中显示它,就在网址中的问号
之后立即传递 HREF:https://script.google.com/a/macros/mycomp.com/s/blahblahmyID/exec?id=1457989239035-cc3050b8
服务器代码将获取值,将其存储在某处并准备好在客户端javaScript请求时将其发送回来。
请参阅下面的示例:
function doGet(e) {
var id = e.parameter.id
PropertiesService.getScriptProperties().setProperty('id',id);
return HtmlService
.createTemplateFromFile('Index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function returnID(){
return PropertiesService.getScriptProperties().getProperty('id');
}
// in your client javascript, add a call like this (outside of any function so it is executed on page load... or use onload="theFunctionName"...):
google.script.run.withSuccessHandler(getID).returnID();
function getID(id){
console.log(id);
}