javafxwebview/WebEngine
我有一个javafxwebview/WebEngine,webview,javafx,java-8,javafx-webengine,Webview,Javafx,Java 8,Javafx Webengine,我有一个JavaFXWebView,它正在用后台消息进行更新,并执行脚本来更新页面 webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == State.SUCCEED
JavaFX
WebView
,它正在用后台消息进行更新,并执行脚本来更新页面
webEngine.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == State.SUCCEEDED) {
try {
webEngine.executeScript("foo1();");
} catch (Exception e) {
// JSException: TypeError: 'undefined' is not a function
}
}
}
});
webEngine.getLoadWorker().stateProperty().addListener(
新的ChangeListener(){
公共无效已更改(ObservalEvalue ov、State oldState、State newState){
if(newState==State.successed){
试一试{
executeScript(“foo1();”);
}捕获(例外e){
//JSException:TypeError:“未定义”不是函数
}
}
}
});
这通常运行正常,但是当我使用自己的WebEngine
创建第二个WebView
并尝试在该第二个页面上执行foo2()
,与在第一个页面上执行foo1
几乎同时,我得到以下结果:
JSException:TypeError:“未定义”不是函数
我可以有一个同步块,但它似乎应该是不必要的,因为Web引擎应该是独立的,有其他解决方案吗?这是程序中的会话管理错误 2个网络视图竞争同一会话,并且。。。假设您尚未实现协议和会话处理程序,包括cookie存储等,则无法获得连接的第二个webengine将在不存在的对象(就webengine而言)上运行脚本,因此是一个未定义的对象。。这就是错误
我在HTTPS协议上使用这些东西,我也经历过这一点。你真的应该使用更具描述性的标题