我使用GUI构建器编写了一个相当基本的对话框表单。但是我想在窗体中放置一个滑块小部件。 (不要问!)
jQuery UI lib有一个滑块,但似乎为了将所有jQuery脚本和css加载到模板中,我必须切换到HTML服务而不是用于页面生成的UI服务。
目前我的Gui构建器表单工作正常,运行类似的东西;
function doGet(e) {
var app = UiApp.createApplication();
app.add(app.loadComponent("DocEditorGui"));
return app;
}
我在html页面中有一个jQuery滑块,我可以这样拉入;
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('mySliderWidget');
}
然而,使用HTML文件似乎与app.createHTML()HTML类型小部件不兼容,因为如果我传递HTMLoutput内容,则不会显示任何内容。 HTML被明确处理,因为Logger.log显示正确的jQuery和html。
var t = HtmlService.createHtmlOutputFromFile('mySliderWidget');
var widgetHTML = container.createHTML(t.getContent());
widgetHTML.setStyleAttribute("background", "green");
Logger.log( t.getContent() );
vPanel.add(widgetHTML );
但是可能这也被caja抓住了,因为效果似乎是剥离了jQuery的所有id标签。添加了HTML,jQuery都打破了。
是否有这个用例的例子,或者我是否为时尚早尝试这样的事情?
作为测试用例,这个jquery滑块示例; http://pastebin.com/bnY7PhCL
在这里的caja游乐场跑步; http://code.google.com/p/google-caja/wiki/CajaPlayground
但不会像上面那样在HTML小部件下运行。
答案 0 :(得分:3)
app.createHTML不使用Caja。除了一小部分外,它删除了所有HTML。你可以在这里的文档中看到:
https://developers.google.com/apps-script/class_html
它删除了所有脚本标记。
HtmlService不是app.createHTML小部件;它是一个全新的API,需要您以这种方式构建整个应用程序。没有办法将HtmlService对jQuery的支持与UiApp混合搭配;它是一个或另一个。