2015-05-18 61 views
0

我已閱讀關於此主題的其他帖子。 我只是想澄清一下,是否真的在vaadin沒有辦法:Vaadin將Javascript添加到自定義佈局

  • 創建一個自定義佈局的HTML文件,像custom.html;
  • 導入一個java腳本文件給它,然後...;
  • 從html文件中調用js函數,就像通常那樣?

目前,我在我的Vaadin \主題(項目)\佈局和一個JavaScript庫Vaadin \ js \ custom.js中有home.html。 在我的Panel類中,我有註釋@JavaScript({"vaadin://js/custom.js"}),在我的html中我試過<script type="text/javascript" src="custom.js"></script>

我在html文件中有一些超鏈接,需要點擊時調用js函數。

任何信息,如果這是可能的,將是最有幫助的?

回答

1

它不可能直接從你的HTML佈局調用它。請注意,您的自定義html文件只是其佈局,因此Vaadin使用佈局和服務器端代碼生成自己的html。這就是爲什麼你的註釋不僅是多餘的 - 它是無用的。

但是它仍然可以使用Vaadin調用JavaScript。使用監聽器可以從服務器調用客戶端代碼:

ok.addClickListener(new ClickListener() 
{ 
    @Override 
    public void buttonClick(ClickEvent event) 
    { 
     JavaScript.getCurrent().execute("itsHot()"); 
    } 
}); 
+0

好 我見過使用JavaScript.getCurrent()的一個例子執行(「」),但希望能有一種方法來創建而不是生成它。 但是,感謝您的信息,它現在是有道理的。 – user1479897

+0

請注意,如果您在UI類中使用@PreserveOnRefresh註釋,那麼這些JavaScript.getCurrent()。execute(..)命令可能不會在刷新時執行。在點擊監聽器執行它的情況下,它應該不是問題。 – Niklas

相關問題