0

前述のように、ユーザーがページを変更する何かをクリックすると、JavaFX を使用したスクリプトは機能しなくなります。

hello.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 を正常にロードした後、window オブジェクトを取得して「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 に答える