我有一个嵌入Google网站页面的Google Apps脚本小工具。我想传递一个小工具页面参数,这样当用以下网址打开页面时:
https://sites.google.com/a/mydomain/mysite/mypage?myparameter=1
我可以在Apps脚本小工具代码中访问页面参数的值,如下所示:
function doGet(e) {
var app = UiApp.createApplication();
app.add(app.loadComponent("MyComponent"));
var myparam = e.parameter.myparameter;
return app;
}
目前,e.parameter.myparameter的值将返回null。有没有办法设置我的Apps脚本来支持这个?欢迎任何方法。
答案 0 :(得分:2)
也许以下链接会对您有所帮助 - 我还没有尝试过它......但我会在接下来的日子里尝试一下。 http://code.google.com/p/google-apps-script-issues/issues/detail?id=535
答案 1 :(得分:0)
This example将参数描述为“& name = value”,但我无法在Google Apps网站或个人Google网站中使用该参数。 (似乎以不同的方式处理身份验证)
当我对值进行硬编码时,这个例子似乎工作得很好所以也许我只是没有正确地解析它,当我理解这一点时我会尝试跟进,但我还没有找到足够的解释这些功能。
一个假设是谷歌改变了一些东西,我注意到菜单结构似乎与我认为的不相符,因为我看到许多对[共享]按钮/菜单的引用。
答案 2 :(得分:0)
我将此代码发布在已接受答案中链接的code.google.com页面上,但是将参数传递到Apps Script的方法是在Apps Script范围内添加“ https://sites.google.com/feeds”。 (有关如何添加显式作用域的信息,请参见this site。)添加此作用域后,以下功能将起作用:
在Code.gs中:
function doGet(e) {
var htmlTemplate = HtmlService.createTemplateFromFile("page");
htmlTemplate.urlParams = e.parameters;
return htmlTemplate.evaluate();
}
在page.html中:
...
<head>
...
<script>urlParams = <?!= JSON.stringify(urlParams) ?>;</script>
</head>
...
urlParams
现在可以在JS代码中以以下形式用作变量:
urlParams = { key1: [value1, value2, ...], key2: [value1, value2] }