更改页面后JavaFX脚本无法正常工作

时间:2014-09-01 05:23:02

标签: java javascript webview javafx javafx-webengine

如上所述,一旦用户点击了更改页面的内容,使用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());
            }
        });
    }
}

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

Uluk Biy的回答是正确的(但我不能发表评论答案)。如果有帮助的话,一定要帮他。

  

在webview的引擎成功加载网址后,尝试获取窗口对象并设置“app”。即当引擎的状态为State.SUCCEEDED时。请参阅WebEngine的javadoc。

WebEngine API页面位于:http://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html