向 Vaadin 添加 javascript 函数

Adding javascript function to Vaadin

我想向 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);

但是两种方式都没有成功。

更新: 我更改了代码,以便他们打印一些东西。这两个代码仍然不起作用。

您的代码无效,因为当您尝试调用它时,您的 myFunction 未在任何地方注册。你的代码是什么意思:

String string = "function myFunction(p) {"
    +"alert(p);"
+"}"
JavaScript.getCurrent().execute(string);

没有效果。要使用 Vaadin 在 JavaScript 中正确定义函数,您需要将其分配给某个变量。这个简单的更改将使您的代码能够 运行:

String string = "soReadyToHelp = function myFunction(p) {"
        +"alert(p);"
    +"}";
JavaScript.getCurrent().execute(string);
JavaScript.getCurrent().execute("soReadyToHelp('Hello');");

请注意,在集成 Vaadin 和 JavaScript 时,您可能会发现 AbstractJavaScriptComponent 很有用。