javascript - 从 JavaFX webview 调用 Java 方法

标签 javascript java user-interface javafx

在我的项目中,我有一个显示在 JavaFx WebView 中的 HTML 文档。我有一个应该调用 Java 方法 getData 的 Javascript 函数(目前它只打印传递的变量,以便我可以确认数据正在从 WebView 传回 Java 应用程序):

    public void getData(String s){
        System.out.println(s);
    }

这就是我尝试将调用 Java 方法的功能添加到我的 WebView 网页中的方式:

    JSObject win = (JSObject) webEngine.getDocument();
    win.setMember("app", new Bridge());

下面是我用来调用 getData 的 JavaScript 函数:

     function interOp(val){
        app.getData(val);
     }

此函数在 <select> 的 onchange 事件上调用标签。我所遵循的指南似乎正是这样做的,但是当我运行我的程序时,控制台上没有打印任何内容。

最佳答案

我找到了解决这个问题的方法:不使用返回 HTMLdocument 对象的 webEngine.getDocument();,而是使用 webEngine.executeScript( "window"); 给出一个窗口对象。

关于javascript - 从 JavaFX webview 调用 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35985601/

相关文章:

java - 如何避免 Java 中不必要的类引用?

java - URLConnection FTP 列表文件

c# - 调用 UI-Element 时线程运行缓慢

javascript - Angular2 - 当 innerHTML 改变时做一些事情

javascript - iPad网站图像性能和内存

javascript - 为什么这个输入有效

java - XML 解析期间字母显示不正确

javascript - 数据类型如何从 Object 获取它们的属性?

java - 如何使 JLayeredPane() 和 JPanel() 透明?它总是显示 super 窗口的背景

Java - JFrame 中的计算器 - 除法不起作用?