簡體   English   中英

Vaadin動態加載JavaScript,CustomLayout

[英]Vaadin dynamic loading JavaScript, CustomLayout

我有一個基於Vaadin 7的應用程序,現在我想將我的組件添加到CustomLayout中,問題是CustomLayout忽略了-模板(靜態html)文件的標頭部分,因此那里描述的資源也被忽略了。 靜態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);
}

`

有關更多詳細信息,請參見此帖子: 如何將d3(javascript)添加到vaadin應用程序?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM