我想在vaadin中添加一个javascript函数,以便在按下按钮时执行。到目前为止,我已经尝试过这两种方式。
String string = "function myFunction(p) {"
+"alert(p);"
+"}"
JavaScript.getCurrent().execute(string);
JavaScript.getCurrent().execute("myFunction('Hello');");
和
String string = "function myFunction(p1, p2) {"
+"alert(p);"
+"}"
+"myFunction('Hello');"
JavaScript.getCurrent().execute(string);
但两种方式都没有成功结束。
更新: 我更改了代码,以便打印一些东西。这两个代码仍然不起作用。
答案 0 :(得分:3)
您的代码无效,因为当您尝试调用myFunction
时,String string = "function myFunction(p) {"
+"alert(p);"
+"}"
JavaScript.getCurrent().execute(string);
未在任何地方注册。我的意思是你的代码:
String string = "soReadyToHelp = function myFunction(p) {"
+"alert(p);"
+"}";
JavaScript.getCurrent().execute(string);
JavaScript.getCurrent().execute("soReadyToHelp('Hello');");
没有效果。要使用Vaadin在JavaScript中正确定义函数,您需要将其分配给某个变量。这个简单的更改将使您的代码能够运行:
{{1}}
请注意,在整合Vaadin和JavaScript时,您可能会发现AbstractJavaScriptComponent很有用。