如何混合使用jQuery和UiInstance来生成GUI

时间:2012-07-02 17:11:28

标签: google-apps-script

我使用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小部件下运行。

1 个答案:

答案 0 :(得分:3)

app.createHTML不使用Caja。除了一小部分外,它删除了所有HTML。你可以在这里的文档中看到:

https://developers.google.com/apps-script/class_html

它删除了所有脚本标记。

HtmlService不是app.createHTML小部件;它是一个全新的API,需要您以这种方式构建整个应用程序。没有办法将HtmlService对jQuery的支持与UiApp混合搭配;它是一个或另一个。