2011-05-18 61 views
3

我正在嘗試將一些js項目集成到我的vaadin應用程序中。我試着調用外部JavaScript代碼的方法,只能在一些簡單的/ javascript上成功。 我試過NativeJs LIB 和代碼是:vaadin javascript

NativeJS nativeJScomponent = new NativeJS(); 
nativeJScomponent.setJavascript("alert('foo');"); 
nativeJScomponent.execute(); 
addComponent(nativeJScomponent); 

然而,當我用一些其他的代碼,如:

String jsCode = "<div /><script type=\"text/javascript\">var d = new Date();" 
        + "var time = d.getHours();" 
        + "if (time < 10) {document.write(\"<b>Good morning</b>\");}</script>"; 
NativeJS nativeJScomponent = new NativeJS(); 
nativeJScomponent.setJavascript(jsCode); 
nativeJScomponent.execute(); 
addComponent(nativeJScomponent); 

它沒有顯示內容。

而且我還使用customelayout和標籤來運行javascript。同樣的結果出現了。

有沒有什麼方法將vaadin與js集成?

+1

我認爲你正在將html與js混合在一起,而NativeJS可能只支持編譯js。 – 2011-05-19 08:25:16

+0

是的,就像使用html和js的字段一樣。我已經解決了這個問題,我使用coustomlayout來完成這個任務,並且需要將腳本標籤寫入applicationservlet類。 – Kyleinincubator 2011-05-23 19:43:55

回答

3
Window window = new Window(""); 
window.executeJavascript("javascript:testFunctionCall();"); 
1

運行源正確的方式做,這是落實AbstractJavaScriptComponent。這使您可以在項目中包含一個純JavaScript腳本文件,並通過RPC調用和共享狀態從服務器端控制該庫。

一個簡單的教程可以找到here和Vaadin的書更深入here。您還可以查看我的Vaadin addon的源代碼,它將Javascript媒體庫與Vaadin集成在一起。