vaadin javascript

3

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

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和label来运行javascript。结果相同。

是否有一种方法将vaadin与js集成?


1
我认为你可能把HTML和JS混淆了,而NativeJS可能只支持编译JS。 - sharp johnny
是的,就像一个带有HTML和JS的字段一样。我已经解决了这个问题,并使用coustomlayout来完成此操作,需要将脚本标签写入applicationservlet类中。 - Kyleinincubator
3个回答

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

1
这样做的正确方式是实现AbstractJavaScriptComponent。这允许您在项目中包含一个普通的Javascript文件,并通过RPC调用和共享状态从服务器端控制该库。
可以在这里找到简单的教程,而Vaadin之书则更深入地介绍了这个主题这里。您还可以查看我的Vaadin插件源代码,它将Javascript媒体库与Vaadin集成在一起。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接