【问题标题】:JavaFX script not working after changing pages更改页面后 JavaFX 脚本不起作用
【发布时间】:2014-09-01 05:23:01
【问题描述】:

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

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

【问题讨论】:

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

标签: java javascript webview javafx javafx-webengine


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2016-06-11
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    相关资源
    最近更新 更多