Скрипт JavaFX не работает после смены страниц

Как отмечалось выше, когда пользователь нажимает на что-то, что изменяет страницу, сценарии с использованием 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 ответ

Ответ от Uluk Biy правильный (но я не могу комментировать ответ). Не забудьте поднять его, если это полезно.

Попытайтесь получить объект окна и установить "приложение" после того, как механизм веб-просмотра успешно загрузит URL. А именно, когда состояние двигателя - State.SUCCEEDED. См. Javadoc WebEngine.

Страница API WebEngine находится здесь: http://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html

Другие вопросы по тегам