javascript - java fx 的 webview 中的 JSexception?

标签 javascript javafx javafx-2

我的 java Fx webview 为以下代码抛出 JS 异常。谁能解释一下为什么?

WebView webview = new WebView();
WebEngine webengine=webview.getEngine();
newtab.setText("Start Page");
newtab.setContent(webview);
editTabset.getTabs().add(newtab);
webengine.load("file:///E:/myproj/src/novuseditor/resources/html/clike.html");/*works till here*/
webengine.executeScript("document.getElementById('code').value=\"Hi\"");
/*exception:netscape.javascript.JSException: TypeError: 'null' is not an object */

最佳答案

webengine.load() 调用是异步的。在应用 javascript 之前,您需要等到文档加载完毕。例如:

    WebView webview = new WebView();
    final WebEngine webengine = webview.getEngine();
    webengine.getLoadWorker().stateProperty().addListener(
    new ChangeListener<State>() {
        public void changed(ObservableValue ov, State oldState, State newState) {
            if (newState == Worker.State.SUCCEEDED) {
                webengine.executeScript("document.getElementById('header').innerHTML = '<p>Hi</p>';");
            }
        }
    });
    webengine.load("http://stackoverflow.com");
    primaryStage.setScene(new Scene(webview, 400, 400));

WebEngine javadoc 中有一个示例。

关于javascript - java fx 的 webview 中的 JSexception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021433/

相关文章:

java - 防止 SplitPane 的一侧在 javafx 中调整大小

JavaFX Circle 和 ImageView

JavaFX如何设置场景背景图片

javascript - 单击div时如何将坐标保存在db中并带有注释并根据div中的坐标显示?

javascript - 在 VUE 中从父组件切换模式对话框

javascript - 阻止模态按钮提交它所在的表单

JavaFX 应用程序无法使用 native exe bundle 启动

javascript - Chrome 在窗口聚焦(即打开)时读取内容

javafx - 带有 JavaFx 11 和 JDK 11 的 Netbeans 9.0

intellij-idea - 错误 :(3, 26) java : package javafx. 应用程序不存在