为什么即使在loadContent(...)之后Document也为null? - (WebView JavaFx)

Let*_*far 3 java javafx webview

这是MainController类初始化(...)方法的简单代码:

WebEngine webEngine = webView.getEngine();
webEngine.loadContent("<h1>hello</h1>"); // Successfully loaded on form
Document doc = webEngine.getDocument(); // null 
Run Code Online (Sandbox Code Playgroud)

为什么docnull以及如何修复它?

Psy*_*888 7

正如我评论的那样,一旦内容成功加载,你应该添加一个监听器,因为加载需要时间,以便执行:

final WebView webView = new WebView();
final WebEngine webEngine = webView.getEngine();
webEngine.getLoadWorker().stateProperty().addListener((observable, oldState, newState) -> {
    if (newState == State.SUCCEEDED) {
        Document doc = webEngine.getDocument();
    }
});
webEngine.loadContent("<h1>hello</h1>");
//webEngine.load("http://google.ch"); // This works too
Run Code Online (Sandbox Code Playgroud)