JavaFX学习笔记 —— WebView中正确与JavaScript交互的使用方法

JavaFX学习笔记 —— WebView中正确与JavaScript交互的使用方法

前言

最近在开发 FX 的项目,在学习使用WebView中,遇到了一些种种问题

  1. 关于如何加载本地html文件
  2. 关于如何与JavaScript交互

在这里插入图片描述

思考

根据网上各类教程关于如何加载 本地HTML文件的方式,部分都是采取URL读取到HTML文件

但是由于我使用Maven构建的项目,在项目根目录下拥有一个 resource文件夹存放html文件

光通过使用 class.getResource() 在测试环境下,是在test/java/src 中找资源文件
而这样我该如何不使用这种方式,拿到我项目根目录的 resource文件夹下的HTML文件呢?

分析

添加file:/// 头 带上本地项目路径即可

示例代码

        String dir = System.getProperty("user.dir").concat("/resource/"+ fileName + ".html");
        String prefix = "file:///";
        String path = prefix + dir;
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();
        webEngine.load(path);

即可!

如何和JavaScript正确交互

通过查阅资料显示

  • WebEngine.executeScript(String script) 与JavaScript进行交互

直接执行该行代码 可能 出现方法 not function

增加一条load事件,等待页面加载完毕之后再进行执行方法!

        webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
    
    
            @Override
            public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue, Worker.State newValue) {
    
    
                if(newValue == Worker.State.SUCCEEDED){
    
    
                    Object obj = webEngine.executeScript("方法()");
                    System.out.println(obj);
                }
            }
        });

即可!

结束语

JavaFX学习笔记 —— WebView中正确与JavaScript交互的使用方法

  • 如果对你有帮助的话可以给我点赞收藏,十分感谢
  • 致力做学习笔记分享给大家
  • 可以转载 需标明 出处 本文链接。
  • 笔者一个开源项目:我的世界开服助手 希望大家可以点一下star

感谢你的观看。

猜你喜欢

转载自blog.csdn.net/qq_33638188/article/details/126421159