我正在寻找一种方法,可以让我获取嵌入Google脚本小工具的当前页面的网址。
我尝试使用getActivePage()但只返回我的Google Site的主页。根据这个问题:http://code.google.com/p/google-apps-script-issues/issues/detail?id=568获取活动网站并获取活动页面有缺陷,但那是在2011年9月...
这是我的代码:
var site = SitesApp.getActivePage();
我是否错误地使用了getActivePage()?
提前感谢您的帮助。
编辑1次尝试:
var templates = site.getTemplates();
var template;
var names = '';
for (var i = 0; i < templates.length; i++) {
if (templates[i].getName() == 'profile') {
template = templates[i];
break;
}
}
if (template != null) {
var pageName = name;
Logger.log('Found: ' + pageName);
site.createPageFromTemplate(pageName, pageName, template);
}
else {
Logger.log('Not Found');
}
答案 0 :(得分:1)
我创建了以下脚本
function doGet(e) {
var app = UiApp.createApplication();
var lbl = app.createTextArea();
lbl.setWidth('100%');
lbl.setHeight('100%');
var txt = SitesApp.getActivePage().getUrl();
lbl.setText(txt);
app.add(lbl);
return app;
}
以及嵌入与此脚本相关联的Google Script Gadget的几页。脚本的输出与Internet浏览器地址栏中的URL相同。
@LehanCoetzee代码。
var templ = HtmlService.createTemplateFromFile('profile').evaluate();
site.createPageFromTemplate(name + ' ' + surname, name, templ);
&#39;轮廓&#39;是我通过应用程序脚本编辑器创建的html模板。
编辑01:
我创建了一个模板页面,其中包含一个链接到我上面脚本的小工具。该脚本的名称为ProfileTemplate
。我还使用以下脚本创建了一个新页面。
function doGet(e) {
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
var tb = app.createTextBox().setName('tb').setId('tb');
var btn = app.createButton().setText('Create').setId('btn');
var out = app.createTextArea().setId('out');
var handler = app.createServerHandler('onBtnClick');
handler.addCallbackElement(panel);
btn.addClickHandler(handler);
panel.add(tb);
panel.add(btn);
panel.add(out);
app.add(panel);
return app;
}
function onBtnClick(e) {
var app = UiApp.getActiveApplication();
var site = SitesApp.getActiveSite();
var out = app.getElementById('out');
var templates = site.getTemplates();
var template;
var names = '';
for (var i = 0; i < templates.length; i++) {
if (templates[i].getName() == 'profiletemplate') {
template = templates[i];
break;
}
}
if (template != null) {
var pageName = e.parameter.tb;
out.setText('Found: ' + pageName);
site.createPageFromTemplate(pageName, pageName, template);
}
else {
out.setText('Not Found');
}
return app;
}
如果要打开新页面,要键入文本(例如test1或test2),然后单击Create
按钮,将创建模板中的新页面。对于文本&#34; test1&#34;,模板化页面的网址类似于https://sites.google.com/a/..../.../test1。小工具的输出将包含此文本。