【问题标题】:Using JavaScript in Vaadin Java Application在 Vaadin Java 应用程序中使用 JavaScript
【发布时间】:2019-02-08 11:00:17
【问题描述】:

我想在我的 Java Web 应用程序中使用 Kurento WebRTC javascript 客户端。

但我什至无法在我的 Java 应用程序中调用一个简单的 javascript 函数。我错过了什么?

var connector = this;

connector.test = function() {
    alert('Hello world!');
}

Java 代码来了:

import com.vaadin.ui.AbstractJavaScriptComponent;


@JavaScript({"rtc.js", "jquery-1.12.3.min.js"})
public class VideoCall extends AbstractJavaScriptComponent {

    public VideoCall() {

    }

    public void testMethod() {
        callFunction("test");
        //Page.getCurrent().getJavaScript().execute("alert('Hello world!')");
        System.out.println("testMethod executed!");
    }

}

当我取消注释时

Page.getCurrent().getJavaScript().execute("alert('Hello world!')");

我得到一个窗口,显示消息“Hello world!”。当我将 test 更改为 foo 作为 callFunction 中的参数时,我没有收到错误消息,尽管 foo 作为函数不存在。 为什么代码不起作用?

【问题讨论】:

    标签: javascript vaadin


    【解决方案1】:

    我假设您在此处显示的第一个代码 sn-p 是您使用 @JavaScript 包含的 rtc.js 文件。该文件缺少的是它应该将自己注册为该特定 Java 类的连接器。

    文件应如下所示:

    window.java_package_name_VideoCall = function() {
      var connector = this;
    
      connector.test = function() {
        alert('Hello world!');
      }
    }
    

    其中java_package_nameVideoCall 类的包名,其中. 替换为_

    【讨论】:

    • 感谢 Leif,但仍然无法正常工作。一定是缺少其他东西。
    • 真的很难在没有更多细节的情况下帮助调试任何东西。我建议您检查浏览器开发者工具的控制台或网络部分中的错误,以及在将?debug 添加到 URL 时打开的 Vaadin 调试窗口中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多