如上所述,一旦用户点击了更改页面的内容,使用JavaFX的脚本就不再有效。
hello.html的
<div onclick="app.byeBye()">bye</div>
byebye.html
<div onclick="app.hello()">hello</div>
JavaApp.class
public class JavaApp{
public void hello(){
//process some stuff here
setURL("/hello.html");
}
public void byeBye(){
//process some stuff here
setURL("/byebye.html");
}
private void setURL(final String uriString){
Platform.runLater(new Runnable(){
public void run(){
JSObject win = (JSObject) webViewPanel.getWebEngine().executeScript("window");
win.setMember("app", new JavaApp());
webViewPanel.loadURL(Browser.class.getResource(uriString).toExternalForm());
}
});
}
}
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
Uluk Biy的回答是正确的(但我不能发表评论答案)。如果有帮助的话,一定要帮他。
在webview的引擎成功加载网址后,尝试获取窗口对象并设置“app”。即当引擎的状态为State.SUCCEEDED时。请参阅WebEngine的javadoc。
WebEngine API页面位于:http://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html