1

我已经使用 GUI 构建器制定了一个相当基本的对话框表单。但是我想在表单中放置一个滑块小部件。(不要问!)

jQuery UI 库有一个滑块,但似乎为了将所有 jQuery 脚本和 css 加载到模板中,我必须切换到 HTML 服务而不是 UI 服务来生成页面。

目前我的 Gui builder 表单工作正常,运行类似这样的东西;

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 类型小部件不兼容,因为如果我传递 HTML 输出内容,则不会显示任何内容。肯定会处理 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

跑在这里的卡哈游乐场; http://code.google.com/p/google-caja/wiki/CajaPlayground

但不能在上面的 HTML 小部件下运行。

4

1 回答 1

3

app.createHTML 不使用 Caja。它去除了除一小部分之外的所有 HTML。您可以在此处的文档中看到:

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

它去除了所有脚本标签。

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

于 2012-07-02T18:57:12.430 回答