WebView完全加载后执行任务

Jav*_*y22 12 java javafx webview javafx-2

WebEngine完成加载后是否可以自动运行任务?我知道我能得到一个WorkerWebEngine指示加载进度,但它似乎是反复轮询Worker不是一个完美的解决方案(即锁定了程序,直到页面加载).我知道我可以用a做到这一点Task,所以我能TaskWebEngine某种方式得到它,并在完成命令上添加执行吗?

jew*_*sea 20

基于WebView文档的示例:

webView.getEngine().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 ) {
      return;
    }

    // Your logic here
  }
} );
Run Code Online (Sandbox Code Playgroud)

作为lambda表达式:

webView.getEngine().getLoadWorker().stateProperty().addListener(
  (ObservableValue<? extends Worker.State> observable,
    Worker.State oldValue,
    Worker.State newValue) -> {
    if( newValue != Worker.State.SUCCEEDED ) {
      return;
    }

    // Your logic here
  } );
Run Code Online (Sandbox Code Playgroud)