瓦丁javascript

瓦丁javascript,java,javascript,vaadin,Java,Javascript,Vaadin,我正在尝试将一些js项目集成到我的vaadin应用程序中。我尝试了调用外部javascript代码的方法,只在一些easy/javascript上成功。 我试过NativeJs lib 代码是: NativeJS nativeJScomponent = new NativeJS(); nativeJScomponent.setJavascript("alert('foo');"); nativeJScomponent.execute(); addComponent(nativeJScompone

我正在尝试将一些js项目集成到我的vaadin应用程序中。我尝试了调用外部javascript代码的方法,只在一些easy/javascript上成功。 我试过NativeJs lib 代码是:

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);
String jsCode=“var d=new Date();”
+“var time=d.getHours();”
+“如果(时间<10){document.write(\'goodmorning\”);}”;
NativeJS nativeJScomponent=new NativeJS();
setJavascript(jsCode);
nativeJScomponent.execute();
addComponent(nativeJScomponent);
它无法显示内容

我还使用customelayout和标签来运行javascript。同样的结果也出现了


有什么方法可以将vaadin与js集成吗?

您是否查看并尝试在中运行源代码?正确的方法是实现
AbstractJavaScriptComponent
。这允许您在项目中包含一个普通Javascript文件,并通过RPC调用和共享状态从服务器端控制该库


一个简单的教程可以找到,瓦丁的书更深入。您还可以查看my的源代码,它将Javascript媒体库与Vaadin集成。

我认为您将html与js混为一谈,而NativeJS可能只支持编译js。是的,就像一个包含html和js的字段一样。我已经解决了这个问题,我使用coustomlayout来完成这项工作,并且需要将脚本标记写入applicationservlet类。
Window window = new Window("");
window.executeJavascript("javascript:testFunctionCall();");