【Google Apps脚本传递网址参数Google信息中心】少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述Google Apps脚本传递网址参数Google信息中心相关的知识,希望能为你提供帮助。
我正在尝试使用此StackOverflow问题How to pass url parameter value into string filter input in Google visualization
将URL参数传递给我使用Mogsdad的excellent writeup创建的Google信息中心。
仪表板工作得很好,但我无法传递参数,例如来自URL的?state=Texas
用作内容过滤器。只要我在javascript.html文件中调用该函数,仪表板就无法绘制:
var stateFilter = stateurl('state');
//if I use this ANYWHERE in the html file, the dashboard failsfunction stateurl(variable){ //in tests this works fine on its own
var url = ScriptApp.getService().getUrl();
var vars = url.split("&
");
for (var i=0;
i<
vars.length;
i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){
return pair[1];
}else return 'Texas'
}
}
这样做的目的是使我的同事能够轻松创建最常用的过滤器/刷新快捷方式。
答案好吧,我想出了一个使用HTML的解决方法(我比javascript更糟糕!)因此它可能不是最好的,但它的工作原理。在doGet函数中,我添加了这两行(切换到城市与州):
function doGet(e) {var template = HtmlService.createTemplateFromFile('Index');
var city = e.parameter.city;
//grab city parametertemplate.city = city;
//build template, then proceed as usual// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
.setTitle("KPIs")
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
然后我将这个简单的div添加到Index.html(对我来说,我将css样式设置为display:none)
<
div id="cityname">
<
?=city?>
<
/div>
然后在我的仪表板功能中,我指的是div:
var city = document.getElementById('cityname').innerHTML;
if (city=="undefined"){
var city = "Austin";
}
这对我来说是回答它,但其他人当然可能有更好的JS修复。我使用此策略添加其他可能的过滤器,只需在doGet中复制其他参数的两行。
有关更多信息,请参阅
Pass URL parameter into Web App script
How to pass url parameter value into string filter input in Google visualization
推荐阅读
- 如何从Android Google Play中删除测试IAP购买
- 使用Appscript将Google图表中的3d图表作为图像插入电子邮件中
- BaseObject可以有NSObject,Mappable和Object swift
- 正确处理Android上的Realm实例
- Android Realm Schema不匹配错误
- 在Android Studio中集成Realm时出错
- 在React Native App上打开Realm Studio
- android错误(RealmClass注释不支持嵌套类)
- 非root用户手机Android用户可以查看/编辑存储在Realm DB中的数据吗()