在java fx的webview中JSexception?
问题描述:
我的java Fx webview为以下代码抛出JS异常。任何人都能解释我为什么?在java fx的webview中JSexception?
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://*.com");
primaryStage.setScene(new Scene(webview, 400, 400));
有一个来自WebEngine javadoc的例子。
哇,这解释了很多东西......非常谢谢:) – 2012-04-05 12:52:26