0

如上所述,一旦用户单击更改页面的内容,使用 JavaFX 的脚本将不再起作用。

你好.html

<div onclick="app.byeBye()">bye</div>

再见.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());
            }
        });
    }
}

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

4

1 回答 1

0

Uluk Biy 的回答是正确的(但我不能发表评论作为答案)。如果这有帮助,请务必给他点赞。

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

WebEngine API 页面在这里:http ://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html

于 2014-09-01T07:39:29.247 回答