java - Vaadin动态加载JavaScript、CustomLayout

标签 java javascript html vaadin vaadin7

我有一个基于 Vaadin 7 的应用程序,现在我想将我的组件添加到 CustomLayout 问题是 CustomLayout 忽略了 - 模板(静态 html)文件的 header 部分,因此那里描述的资源也被忽略了。静态 html 文件不是 Vaadin 应用程序的一部分,它们是动态生成的。我如何在没有注释的情况下在客户端加载 JS 和 CSS 文件(属于静态 html):

@JavaScript; @StyleSheet

并且使用 JavaScript.execute() 的方法也不是好的方法。

最佳答案

为什么这些解决方案对您不利?根据我的经验,这些工作很好。 然而,还有另一种解决方案:只在页面中包含一个外部 javascript 文件,扩展 ApplicationServlet 类,并覆盖 writeAjaxPageHtmlVaadinScripts 方法。

`@Override
protected void writeAjaxPageHtmlVaadinScripts(Window window, String themeName, Application application, BufferedWriter page, String appUrl, String themeUri, String appId, ServletRequest request) throws ServletException, IOException {
  page.write("<script type=\"text/javascript\">\n");
  page.write("//<![CDATA[\n");
  page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/jquery/jquery-1.4.4.min.js'><\\/script>\");\n");
  page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/highcharts/highcharts.js'><\\/script>\");\n");
  page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/highcharts/modules/exporting.js'><\\/script>\");\n");
  page.write("//]]>\n</script>\n");
  super.writeAjaxPageHtmlVaadinScripts(window, themeName, application,
      page, appUrl, themeUri, appId, request);
}

`

有关详细信息,请参阅此帖子:How to add d3 (javascript) to a vaadin application?

关于java - Vaadin动态加载JavaScript、CustomLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412690/

相关文章:

java - 如何在不打开浏览器或使用 Blackberry 中的 browserfield 的情况下连接到 URL

java - ORA-00904 : "pass": invalid identifier

java - 匿名内部类和本地类的区别

java - 用于测试 Java 类结构的库或框架

javascript - Jquery 在鼠标位置设置 div

javascript - 混淆 Node 的 Browserify 输出

javascript - 如何在传单控件搜索结果上显示 2 个值(工具提示)

html - 100% 没有 div 的页脚

javascript - cURL 通过 AJAX 返回完整的 HTML - 如何向用户显示?

javascript - 使用 javascript onclick 事件更改 HTML 文件中的元素