在我的 JavaFX 項目中,我在等待網(wǎng)站完全呈現(xiàn)的 WebView 的 WebEngine 上有一個偵聽器。然后我需要訪問生成的 DOM 文檔。如果我不知道偵聽器屬于哪個 WebEngine,這將不起作用!創(chuàng)建變量或簡單地使用webView存在的變量不是一種選擇!這是因為我正在使用 ChangeListeners 創(chuàng)建幾個 webViews。我現(xiàn)在如何將它們分配給彼此?webView.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() { public void changed(ObservableValue ov, Worker.State oldState, Worker.State newState) { if (newState == Worker.State.SUCCEEDED) { // Here I do my stuff // I need to access webView.getEngine().getDocument() } }});更新這是我面臨的問題的最小工作示例:https : //github.com/mg98/StackOverflow-Demonstration它基本上是關(guān)于: Main.javapackage sample;import javafx.application.Application;import javafx.beans.value.ChangeListener;import javafx.beans.value.ObservableValue;import javafx.concurrent.Worker;import javafx.fxml.FXMLLoader;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.scene.web.WebView;import javafx.stage.Stage;import org.w3c.dom.Document;public class Main extends Application { private static Controller ctrl; private final static String[] urls = new String[] { "https://google.com", "https://youtube.com", "https://facebook.com", "https://twitter.com", "https://stackoverflow.com" }; @Override public void start(Stage primaryStage) throws Exception{ FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("sample.fxml")); Parent root = fxmlLoader.load(); ctrl = fxmlLoader.getController(); primaryStage.setTitle("Hello World"); primaryStage.setScene(new Scene(root, 300, 275)); primaryStage.show(); findSomething(); } public static void main(String[] args) { launch(args); }
添加回答
舉報
0/150
提交
取消